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 <shawn.rutledge@qt.io>
(cherry picked from commit f0b2c5f21c8dcd66a7e43321ea2620aea71706e8)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
Samuli Piippo 2023-11-06 17:15:26 +02:00 committed by Qt Cherry-pick Bot
parent a2a7da3a02
commit 44df580c8e

View File

@ -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;