From a521fb70cf0f8b26019c8a033cb117435dbcf6ed Mon Sep 17 00:00:00 2001 From: Bogdan Gheorghe Date: Wed, 1 Aug 2012 18:05:12 -0400 Subject: Bug 379590 - Run event loop while Tracker is up --- .../Eclipse SWT/win32/org/eclipse/swt/widgets/Tracker.java | 4 ++++ 1 file changed, 4 insertions(+) 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 -- cgit