From f6b149fffbe650cb37e8602f46a0b6a2db32fb60 Mon Sep 17 00:00:00 2001 From: Povilas Kanapickas Date: Sun, 30 May 2021 19:00:28 +0300 Subject: [PATCH] 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 --- src/plugins/platforms/xcb/qxcbconnection_xi2.cpp | 10 ++++++---- 1 file 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;