diff options
author | Povilas Kanapickas <povilas@radix.lt> | 2021-05-30 19:00:28 +0300 |
---|---|---|
committer | Povilas Kanapickas <povilas@radix.lt> | 2021-06-01 21:25:33 +0300 |
commit | f6b149fffbe650cb37e8602f46a0b6a2db32fb60 (patch) | |
tree | f244c6c61d94ee13c73371795911fc1d327dfee8 /src/plugins | |
parent | 20feedac95c519c71d4db93ab28ad1a110dfbcca (diff) |
xcb: Fix touch grab handling on pre-XI 2.2
This is only a theoretical bug fix because systems that don't support XI
2.2 are ten years old by now.
Change-Id: Ia3770a6ca626b60d0f1e4cd2fdc611adf99cbf25
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/platforms/xcb/qxcbconnection_xi2.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp b/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp index 1f45f6dc80..9abdfd422b 100644 --- a/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp +++ b/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp @@ -929,10 +929,12 @@ bool QXcbConnection::xi2SetMouseGrabEnabled(xcb_window_t w, bool grab) | XCB_INPUT_XI_EVENT_MASK_BUTTON_RELEASE | XCB_INPUT_XI_EVENT_MASK_MOTION | XCB_INPUT_XI_EVENT_MASK_ENTER - | XCB_INPUT_XI_EVENT_MASK_LEAVE - | XCB_INPUT_XI_EVENT_MASK_TOUCH_BEGIN - | XCB_INPUT_XI_EVENT_MASK_TOUCH_UPDATE - | XCB_INPUT_XI_EVENT_MASK_TOUCH_END; + | XCB_INPUT_XI_EVENT_MASK_LEAVE; + if (isAtLeastXI22()) { + mask |= XCB_INPUT_XI_EVENT_MASK_TOUCH_BEGIN; + mask |= XCB_INPUT_XI_EVENT_MASK_TOUCH_UPDATE; + mask |= XCB_INPUT_XI_EVENT_MASK_TOUCH_END; + } for (int id : qAsConst(m_xiMasterPointerIds)) { xcb_generic_error_t *error = nullptr; |