diff options
author | Andy Shaw <andy.shaw@qt.io> | 2024-03-07 08:27:24 +0100 |
---|---|---|
committer | Andy Shaw <andy.shaw@qt.io> | 2024-03-08 16:12:45 +0100 |
commit | b8f9a8681347476f4db1719b38a67d7f9d3c74be (patch) | |
tree | b951344ffc780a3442b89395abb6ee444a8593cf /src/plugins/platforms | |
parent | b8584173ab6a3fc4e034bc237b34f4968528b0f3 (diff) |
XCB: Unset the connection's mousePressWindow if it's this window
In some rare cases it can delete the window before this is handled by
other calls, so rather than crashing we clean up.
Pick-to: 6.7 6.6 6.5 6.2 5.15
Change-Id: Iddcd9890f0c13f4130626b0ed9c5b32f5890208d
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
Diffstat (limited to 'src/plugins/platforms')
-rw-r--r-- | src/plugins/platforms/xcb/qxcbwindow.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/plugins/platforms/xcb/qxcbwindow.cpp b/src/plugins/platforms/xcb/qxcbwindow.cpp index faeb9cd314..235de0a9e4 100644 --- a/src/plugins/platforms/xcb/qxcbwindow.cpp +++ b/src/plugins/platforms/xcb/qxcbwindow.cpp @@ -541,6 +541,8 @@ void QXcbWindow::destroy() doFocusOut(); if (connection()->mouseGrabber() == this) connection()->setMouseGrabber(nullptr); + if (connection()->mousePressWindow() == this) + connection()->setMousePressWindow(nullptr); if (m_syncCounter && connection()->hasXSync()) xcb_sync_destroy_counter(xcb_connection(), m_syncCounter); |