From 44df580c8e5a61d80a88ad3ed9eda60413c5aa3b Mon Sep 17 00:00:00 2001 From: Samuli Piippo Date: Mon, 6 Nov 2023 17:15:26 +0200 Subject: [PATCH] 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.5 6.2 Fixes: QTBUG-111952 Fixes: QTBUG-113307 Change-Id: I7ed6e37936887e11affb254d2fca74c79b6a43b9 Reviewed-by: Shawn Rutledge (cherry picked from commit f0b2c5f21c8dcd66a7e43321ea2620aea71706e8) Reviewed-by: Qt Cherry-pick Bot --- src/platformsupport/input/tslib/qtslib.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/platformsupport/input/tslib/qtslib.cpp b/src/platformsupport/input/tslib/qtslib.cpp index 299d7801ec7..a84cc90dc29 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;