summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/plugins/platforms/windows/qwindowsmousehandler.cpp4
-rw-r--r--src/plugins/platforms/windows/qwindowsmousehandler.h11
2 files changed, 14 insertions, 1 deletions
diff --git a/src/plugins/platforms/windows/qwindowsmousehandler.cpp b/src/plugins/platforms/windows/qwindowsmousehandler.cpp
index 48d43857e9..eb7d2912bb 100644
--- a/src/plugins/platforms/windows/qwindowsmousehandler.cpp
+++ b/src/plugins/platforms/windows/qwindowsmousehandler.cpp
@@ -196,6 +196,8 @@ bool QWindowsMouseHandler::translateMouseWheelEvent(QWindow *window, HWND,
MSG msg, LRESULT *)
{
const Qt::MouseButtons buttons = keyStateToMouseButtons((int)msg.wParam);
+ const Qt::KeyboardModifiers mods = keyStateToModifiers((int)msg.wParam);
+
int delta;
if (msg.message == WM_MOUSEWHEEL || msg.message == WM_MOUSEHWHEEL)
delta = (short) HIWORD (msg.wParam);
@@ -224,7 +226,7 @@ bool QWindowsMouseHandler::translateMouseWheelEvent(QWindow *window, HWND,
QWindowSystemInterface::handleWheelEvent(receiver,
QWindowsGeometryHint::mapFromGlobal(receiver, globalPos),
globalPos,
- delta, orientation);
+ delta, orientation, mods);
return true;
}
diff --git a/src/plugins/platforms/windows/qwindowsmousehandler.h b/src/plugins/platforms/windows/qwindowsmousehandler.h
index b3d176db9b..a978840d67 100644
--- a/src/plugins/platforms/windows/qwindowsmousehandler.h
+++ b/src/plugins/platforms/windows/qwindowsmousehandler.h
@@ -67,6 +67,7 @@ public:
LRESULT *result);
static inline Qt::MouseButtons keyStateToMouseButtons(int);
+ static inline Qt::KeyboardModifiers keyStateToModifiers(int);
static inline int mouseButtonsToKeyState(Qt::MouseButtons);
QWindow *windowUnderMouse() const { return m_windowUnderMouse.data(); }
@@ -96,6 +97,16 @@ Qt::MouseButtons QWindowsMouseHandler::keyStateToMouseButtons(int wParam)
return mb;
}
+Qt::KeyboardModifiers QWindowsMouseHandler::keyStateToModifiers(int wParam)
+{
+ Qt::KeyboardModifiers mods(Qt::NoModifier);
+ if (wParam & MK_CONTROL)
+ mods |= Qt::ControlModifier;
+ if (wParam & MK_SHIFT)
+ mods |= Qt::ShiftModifier;
+ return mods;
+}
+
int QWindowsMouseHandler::mouseButtonsToKeyState(Qt::MouseButtons mb)
{
int result = 0;