diff options
Diffstat (limited to 'bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Tracker.java')
-rw-r--r-- | bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Tracker.java | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Tracker.java b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Tracker.java index 0f7abb3aa1..b660abb9a9 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Tracker.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Tracker.java @@ -569,11 +569,14 @@ public boolean open () { oldY = cursorPos.y; } + Display display = this.display; try { /* Tracker behaves like a Dialog with its own OS event loop. */ MSG msg = new MSG (); while (tracking && !cancelled) { if (parent != null && parent.isDisposed ()) break; + display.runSkin (); + display.runDeferredLayouts (); OS.GetMessage (msg, 0, 0, 0); OS.TranslateMessage (msg); switch (msg.message) { @@ -609,6 +612,7 @@ public boolean open () { update (); drawRectangles (rectangles, stippled); } + display.runAsyncMessages (false); } finally { /* * Cleanup: If a transparent window was created in order to capture events then |