summaryrefslogtreecommitdiffstats
path: root/src/platformsupport/input
diff options
context:
space:
mode:
authorSamuli Piippo <samuli.piippo@qt.io>2023-11-06 17:15:26 +0200
committerSamuli Piippo <samuli.piippo@qt.io>2023-11-08 13:40:44 +0200
commitf0b2c5f21c8dcd66a7e43321ea2620aea71706e8 (patch)
treedb2a525531fd60731e738e34e6d6864e0dd6a56d /src/platformsupport/input
parent5a5c96c65d9c4c4e0eac1888d5f396f352e60444 (diff)
tslib: generate event with correct buttons and event type
Tslib doesn't give button and movements events separately, so send the first event with pressure as MouseButtonPress, subsequent events as MouseMove and event without pressure as MouseButtonRelease. Pick-to: 6.6 6.5 6.2 Fixes: QTBUG-111952 Fixes: QTBUG-113307 Change-Id: I7ed6e37936887e11affb254d2fca74c79b6a43b9 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Diffstat (limited to 'src/platformsupport/input')
-rw-r--r--src/platformsupport/input/tslib/qtslib.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/platformsupport/input/tslib/qtslib.cpp b/src/platformsupport/input/tslib/qtslib.cpp
index 299d7801ec..a84cc90dc2 100644
--- a/src/platformsupport/input/tslib/qtslib.cpp
+++ b/src/platformsupport/input/tslib/qtslib.cpp
@@ -79,9 +79,12 @@ void QTsLibMouseHandler::readMouseData()
}
QPoint pos(x, y);
- QWindowSystemInterface::handleMouseEvent(nullptr, pos, pos,
- pressed ? Qt::LeftButton : Qt::NoButton,
- Qt::NoButton, QEvent::None);
+ Qt::MouseButton button = pressed ^ m_pressed ? Qt::LeftButton : Qt::NoButton;
+ Qt::MouseButtons state = pressed ? Qt::LeftButton : Qt::NoButton;
+ QEvent::Type type = pressed ? (m_pressed ? QEvent::MouseMove : QEvent::MouseButtonPress)
+ : QEvent::MouseButtonRelease;
+
+ QWindowSystemInterface::handleMouseEvent(nullptr, pos, pos, state, button, type);
m_x = x;
m_y = y;