From 363c9aba772b20d2df9070be730ffb36775b6f2b Mon Sep 17 00:00:00 2001 From: Matteo Bertini Date: Wed, 18 Feb 2015 17:10:41 +0100 Subject: Identify XButton1|2 release events when mouse is moving. X11 has no special state for XButton1 and XButton2, so we need to look at the global `mouseButtonState` and restore the buttons after a mouse move. Task-number: QTBUG-40148 Change-Id: I789f32b344cf7902b1c7aa6b7da7f20f32602be2 Reviewed-by: Alexander Volkov Reviewed-by: Shawn Rutledge --- src/gui/kernel/qapplication_x11.cpp | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/gui') diff --git a/src/gui/kernel/qapplication_x11.cpp b/src/gui/kernel/qapplication_x11.cpp index ba8bc1a624..a198fd931b 100644 --- a/src/gui/kernel/qapplication_x11.cpp +++ b/src/gui/kernel/qapplication_x11.cpp @@ -4189,6 +4189,12 @@ static Qt::MouseButtons translateMouseButtons(int s) ret |= Qt::MidButton; if (s & Button3Mask) ret |= Qt::RightButton; + // X11 has no special state for XButton1 and XButton2, so we need to use + // the global state maintained between press and release. + if (mouseButtonState.testFlag(Qt::XButton1)) + ret |= Qt::XButton1; + if (mouseButtonState.testFlag(Qt::XButton2)) + ret |= Qt::XButton2; return ret; } -- cgit v1.2.3