diff --git a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Composite.java b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Composite.java index e257c77d30..ef92770d33 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Composite.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Composite.java @@ -1063,6 +1063,9 @@ void setBoundsInPixels (int x, int y, int width, int height, int flags, boolean state &= ~(RESIZE_OCCURRED | MOVE_OCCURRED); state |= RESIZE_DEFERRED | MOVE_DEFERRED; } + if (x == this.x && this.y == y && this.width == width && this.height == height && this.flags == flags) { + return; + } super.setBoundsInPixels (x, y, width, height, flags, defer); if (!defer && (state & CANVAS) != 0) { boolean wasMoved = (state & MOVE_OCCURRED) != 0; diff --git a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Control.java b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Control.java index e32faf76ee..83203ed57c 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Control.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Control.java @@ -3193,6 +3193,11 @@ void setBoundsInPixels (int x, int y, int width, int height, int flags) { } void setBoundsInPixels (int x, int y, int width, int height, int flags, boolean defer) { + long lol = topHandle (); + if(x == this.x && this.y == y && this.width == width && this.height == height && this.flags == flags) { +// System.out.println("yo " + lol); + return; + } if (findImageControl () != null) { if (backgroundImage == null) flags |= OS.SWP_NOCOPYBITS; } else { @@ -3202,7 +3207,8 @@ void setBoundsInPixels (int x, int y, int width, int height, int flags, boolean } } } - long topHandle = topHandle (); + long topHandle = lol; +// System.out.println(topHandle); if (defer && parent != null) { forceResize (); if (parent.lpwp != null) { @@ -3229,8 +3235,12 @@ void setBoundsInPixels (int x, int y, int width, int height, int flags, boolean } } OS.SetWindowPos (topHandle, 0, x, y, width, height, flags); + this.x = x; + this.y = y;this.width = width; this.height = height; this.flags = flags; } +int x, y, width, height, flags; + /** * Sets the receiver's size and location in points to the rectangular * area specified by the argument. The x and