diff options
author | Liang Qi <liang.qi@qt.io> | 2021-05-26 11:23:29 +0200 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2021-06-16 15:53:22 +0200 |
commit | 50a4b97d3160d45a5dcadc68d08f04b2e9efa16d (patch) | |
tree | 2718c2d64070053f8c81245f01ee661ebc60b3be /src/plugins/platforms/xcb/qxcbwindow.cpp | |
parent | 8e506fdd299d2fa18172209bea316f484e234e19 (diff) |
xcb: fix QWindow::startSystemMove()/Resize() triggered by touch
Abort the system move/resise at XCB_INPUT_TOUCH_END.
Limit the behavior only on supported platforms, such as KDE and
OpenBox.
Change-Id: I53c86979ca56f4de8c5cf2807f781abdad6987b2
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Diffstat (limited to 'src/plugins/platforms/xcb/qxcbwindow.cpp')
-rw-r--r-- | src/plugins/platforms/xcb/qxcbwindow.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/plugins/platforms/xcb/qxcbwindow.cpp b/src/plugins/platforms/xcb/qxcbwindow.cpp index 122e89f22e..ea8e1f479d 100644 --- a/src/plugins/platforms/xcb/qxcbwindow.cpp +++ b/src/plugins/platforms/xcb/qxcbwindow.cpp @@ -2332,8 +2332,10 @@ bool QXcbWindow::startSystemMoveResize(const QPoint &pos, int edges) // ### FIXME QTBUG-53389 bool startedByTouch = connection()->startSystemMoveResizeForTouch(m_window, edges); if (startedByTouch) { - if (connection()->isUnity()) { - // Unity fails to move/resize via _NET_WM_MOVERESIZE (WM bug?). + const QString wmname = connection()->windowManagerName(); + if (wmname != QLatin1String("kwin") && wmname != QLatin1String("openbox")) { + qCDebug(lcQpaXInputDevices) << "only KDE and OpenBox support startSystemMove/Resize which is triggered from touch events: XDG_CURRENT_DESKTOP=" + << qgetenv("XDG_CURRENT_DESKTOP"); connection()->abortSystemMoveResize(m_window); return false; } |