summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/windows/qwindowscontext.cpp
diff options
context:
space:
mode:
authorOswald Buddenhagen <oswald.buddenhagen@qt.io>2017-02-01 21:00:55 +0100
committerOswald Buddenhagen <oswald.buddenhagen@qt.io>2017-02-01 21:00:55 +0100
commitdcd5cb973622d059818dba1a2c7b9a7b7601a14c (patch)
treefbda1c8c6d36cae42b084f7298cf5b1904e21e9f /src/plugins/platforms/windows/qwindowscontext.cpp
parentf299b565b5904e39a47b6133643448e46810f0ed (diff)
parentff68e5d667cc62141f177d01f747a62c95f08d3e (diff)
Merge remote-tracking branch 'gerrit/dev' into HEAD
Diffstat (limited to 'src/plugins/platforms/windows/qwindowscontext.cpp')
-rw-r--r--src/plugins/platforms/windows/qwindowscontext.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/plugins/platforms/windows/qwindowscontext.cpp b/src/plugins/platforms/windows/qwindowscontext.cpp
index 4248d5685e..fefc848d01 100644
--- a/src/plugins/platforms/windows/qwindowscontext.cpp
+++ b/src/plugins/platforms/windows/qwindowscontext.cpp
@@ -1013,11 +1013,18 @@ bool QWindowsContext::windowsProc(HWND hwnd, UINT message,
case QtWindows::MouseWheelEvent:
case QtWindows::MouseEvent:
case QtWindows::LeaveEvent:
+ {
+ QWindow *window = platformWindow->window();
+ while (window->flags() & Qt::WindowTransparentForInput)
+ window = window->parent();
+ if (!window)
+ return false;
#if !defined(QT_NO_SESSIONMANAGER)
- return platformSessionManager()->isInteractionBlocked() ? true : d->m_mouseHandler.translateMouseEvent(platformWindow->window(), hwnd, et, msg, result);
+ return platformSessionManager()->isInteractionBlocked() ? true : d->m_mouseHandler.translateMouseEvent(window, hwnd, et, msg, result);
#else
- return d->m_mouseHandler.translateMouseEvent(platformWindow->window(), hwnd, et, msg, result);
+ return d->m_mouseHandler.translateMouseEvent(window, hwnd, et, msg, result);
#endif
+ }
case QtWindows::TouchEvent:
#if !defined(QT_NO_SESSIONMANAGER)
return platformSessionManager()->isInteractionBlocked() ? true : d->m_mouseHandler.translateTouchEvent(platformWindow->window(), hwnd, et, msg, result);