--- a/jdk/src/share/classes/javax/swing/DefaultDesktopManager.java Fri Jan 31 14:20:40 2014 +0400
+++ b/jdk/src/share/classes/javax/swing/DefaultDesktopManager.java Fri Jan 31 18:49:58 2014 +0400
@@ -677,6 +677,11 @@
f.setBounds(currentBounds);
+ if (!floaterCollision) {
+ Rectangle r = currentBounds;
+ currentManager.notifyRepaintPerformed(parent, r.x, r.y, r.width, r.height);
+ }
+
if(floaterCollision) {
// since we couldn't blit we just redraw as fast as possible
// the isDragging mucking is to avoid activating emergency
@@ -706,6 +711,8 @@
// Fix the damage
for (int i = 0; i < dirtyRects.length; i++) {
parent.paintImmediately(dirtyRects[i]);
+ Rectangle r = dirtyRects[i];
+ currentManager.notifyRepaintPerformed(parent, r.x, r.y, r.width, r.height);
}
// new areas of blit were exposed
@@ -716,9 +723,10 @@
dirtyRects[i].x += newX - previousBounds.x;
dirtyRects[i].y += newY - previousBounds.y;
((JInternalFrame)f).isDragging = false;
-
parent.paintImmediately(dirtyRects[i]);
((JInternalFrame)f).isDragging = true;
+ Rectangle r = dirtyRects[i];
+ currentManager.notifyRepaintPerformed(parent, r.x, r.y, r.width, r.height);
}
}