diff options
author | Silenio Quarti | 2007-05-25 16:04:26 +0000 |
---|---|---|
committer | Silenio Quarti | 2007-05-25 16:04:26 +0000 |
commit | 28da434c9ea6aeae59907bf4d5d01247ff882e9d (patch) | |
tree | f12e31197381f214e4f87968c250a185a3fff86b | |
parent | 6b82a5031b4ed40cdabe80cfe93c01a3349ec7e8 (diff) | |
download | eclipse.platform.swt-28da434c9ea6aeae59907bf4d5d01247ff882e9d.tar.gz eclipse.platform.swt-28da434c9ea6aeae59907bf4d5d01247ff882e9d.tar.xz eclipse.platform.swt-28da434c9ea6aeae59907bf4d5d01247ff882e9d.zip |
Bug 183430 - [DND] Drag and Drop between groups causes Eclipse thread to hang in COM.DoDragDrop() indefinitely.
-rwxr-xr-x | bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Display.java | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Display.java b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Display.java index b27979c232..7b6b2822fa 100755 --- a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Display.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Display.java @@ -353,6 +353,7 @@ public class Display extends Device { static final int SWT_DESTROY = OS.WM_APP + 3; static final int SWT_TRAYICONMSG = OS.WM_APP + 4; static final int SWT_NULL = OS.WM_APP + 5; + static final int SWT_RUNASYNC = OS.WM_APP + 6; static int SWT_TASKBARCREATED; static int SWT_RESTORECARET; @@ -1253,7 +1254,9 @@ int foregroundIdleProc (int code, int wParam, int lParam) { if (runMessages) { if (code >= 0) { if (getMessageCount () != 0) { - if (runMessagesInIdle) runAsyncMessages (false); + if (runMessagesInIdle) { + OS.PostMessage (hwndMessage, SWT_RUNASYNC, 0, 0); + } wakeThread (); } } @@ -2763,6 +2766,10 @@ static char mbcsToWcs (int ch, int codePage) { int messageProc (int hwnd, int msg, int wParam, int lParam) { switch (msg) { + case SWT_RUNASYNC: { + if (runMessagesInIdle) runAsyncMessages (false); + break; + } case SWT_KEYMSG: { boolean consumed = false; MSG keyMsg = new MSG (); |