OpenJDK / portola / portola
changeset 20461:f9eb0540693c
8025585: Win: Popups in JFXPanel do not receive MouseWheel events
Reviewed-by: anthony, art
author | pchelko |
---|---|
date | Tue, 08 Oct 2013 15:54:43 +0400 |
parents | a60499e6e190 |
children | 1b06fa1bb364 |
files | jdk/src/windows/native/sun/windows/awt_Toolkit.cpp |
diffstat | 1 files changed, 12 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/jdk/src/windows/native/sun/windows/awt_Toolkit.cpp Tue Oct 08 15:17:22 2013 +0400 +++ b/jdk/src/windows/native/sun/windows/awt_Toolkit.cpp Tue Oct 08 15:54:43 2013 +0400 @@ -1516,10 +1516,19 @@ * the mouse, not the Component with the input focus. */ - if (msg.message == WM_MOUSEWHEEL && - AwtToolkit::MainThread() == ::GetWindowThreadProcessId(hWndForWheel, NULL)) { + if (msg.message == WM_MOUSEWHEEL) { //i.e. mouse is over client area for this window - msg.hwnd = hWndForWheel; + DWORD hWndForWheelProcess; + DWORD hWndForWheelThread = ::GetWindowThreadProcessId(hWndForWheel, &hWndForWheelProcess); + if (::GetCurrentProcessId() == hWndForWheelProcess) { + if (AwtToolkit::MainThread() == hWndForWheelThread) { + msg.hwnd = hWndForWheel; + } else { + // Interop mode, redispatch the event to another toolkit. + ::SendMessage(hWndForWheel, msg.message, mouseWParam, mouseLParam); + return TRUE; + } + } } /*