diff options
author | Steve Northover <steve> | 2005-06-08 00:44:58 +0000 |
---|---|---|
committer | Steve Northover <steve> | 2005-06-08 00:44:58 +0000 |
commit | d58da3389369b13fba4e628f2d808b5cc1a66164 (patch) | |
tree | 7afc3cd87ed92a2298e7925be3419f179f2d86ca | |
parent | a7944d23da5f7f6439cdfdbf094edb3b7ade24da (diff) | |
download | eclipse.platform.swt-d58da3389369b13fba4e628f2d808b5cc1a66164.tar.gz eclipse.platform.swt-d58da3389369b13fba4e628f2d808b5cc1a66164.tar.xz eclipse.platform.swt-d58da3389369b13fba4e628f2d808b5cc1a66164.zip |
60635 - need to move the mouse a little bit to get enter/exit
-rwxr-xr-x | bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Widget.java | 62 |
1 files changed, 31 insertions, 31 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Widget.java b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Widget.java index 41db4dc398..46fcc4a2e4 100755 --- a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Widget.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Widget.java @@ -1761,43 +1761,43 @@ LRESULT wmMouseLeave (int hwnd, int wParam, int lParam) { } LRESULT wmMouseMove (int hwnd, int wParam, int lParam) { - int pos = OS.GetMessagePos (); - if (pos != display.lastMouse) { - if (!OS.IsWinCE) { - boolean mouseEnter = hooks (SWT.MouseEnter) || display.filters (SWT.MouseEnter); - boolean mouseExit = hooks (SWT.MouseExit) || display.filters (SWT.MouseExit); - boolean mouseHover = hooks (SWT.MouseHover) || display.filters (SWT.MouseHover); - if (mouseEnter || mouseExit || mouseHover) { - TRACKMOUSEEVENT lpEventTrack = new TRACKMOUSEEVENT (); - lpEventTrack.cbSize = TRACKMOUSEEVENT.sizeof; - lpEventTrack.dwFlags = OS.TME_QUERY; + if (!OS.IsWinCE) { + boolean mouseEnter = hooks (SWT.MouseEnter) || display.filters (SWT.MouseEnter); + boolean mouseExit = hooks (SWT.MouseExit) || display.filters (SWT.MouseExit); + boolean mouseHover = hooks (SWT.MouseHover) || display.filters (SWT.MouseHover); + if (mouseEnter || mouseExit || mouseHover) { + TRACKMOUSEEVENT lpEventTrack = new TRACKMOUSEEVENT (); + lpEventTrack.cbSize = TRACKMOUSEEVENT.sizeof; + lpEventTrack.dwFlags = OS.TME_QUERY; + lpEventTrack.hwndTrack = hwnd; + OS.TrackMouseEvent (lpEventTrack); + if (lpEventTrack.dwFlags == 0) { + lpEventTrack.dwFlags = OS.TME_LEAVE | OS.TME_HOVER; lpEventTrack.hwndTrack = hwnd; OS.TrackMouseEvent (lpEventTrack); - if (lpEventTrack.dwFlags == 0) { - lpEventTrack.dwFlags = OS.TME_LEAVE | OS.TME_HOVER; - lpEventTrack.hwndTrack = hwnd; - OS.TrackMouseEvent (lpEventTrack); - if (mouseEnter) { - /* - * Force all outstanding WM_MOUSELEAVE messages to be dispatched before - * issuing a mouse enter. This causes mouse exit events to be processed - * before mouse enter events. Note that WM_MOUSELEAVE is posted to the - * event queue by TrackMouseEvent(). - */ - MSG msg = new MSG (); - int flags = OS.PM_REMOVE | OS.PM_NOYIELD | OS.PM_QS_INPUT | OS.PM_QS_POSTMESSAGE; - while (OS.PeekMessage (msg, 0, OS.WM_MOUSELEAVE, OS.WM_MOUSELEAVE, flags)) { - OS.TranslateMessage (msg); - OS.DispatchMessage (msg); - } - sendMouseEvent (SWT.MouseEnter, 0, hwnd, OS.WM_MOUSEMOVE, wParam, lParam); + if (mouseEnter) { + /* + * Force all outstanding WM_MOUSELEAVE messages to be dispatched before + * issuing a mouse enter. This causes mouse exit events to be processed + * before mouse enter events. Note that WM_MOUSELEAVE is posted to the + * event queue by TrackMouseEvent(). + */ + MSG msg = new MSG (); + int flags = OS.PM_REMOVE | OS.PM_NOYIELD | OS.PM_QS_INPUT | OS.PM_QS_POSTMESSAGE; + while (OS.PeekMessage (msg, 0, OS.WM_MOUSELEAVE, OS.WM_MOUSELEAVE, flags)) { + OS.TranslateMessage (msg); + OS.DispatchMessage (msg); } - } else { - lpEventTrack.dwFlags = OS.TME_HOVER; - OS.TrackMouseEvent (lpEventTrack); + sendMouseEvent (SWT.MouseEnter, 0, hwnd, OS.WM_MOUSEMOVE, wParam, lParam); } + } else { + lpEventTrack.dwFlags = OS.TME_HOVER; + OS.TrackMouseEvent (lpEventTrack); } } + } + int pos = OS.GetMessagePos (); + if (pos != display.lastMouse) { display.lastMouse = pos; sendMouseEvent (SWT.MouseMove, 0, hwnd, OS.WM_MOUSEMOVE, wParam, lParam); } |