summaryrefslogtreecommitdiffstats
path: root/src/client/qwaylanddisplay.cpp
diff options
context:
space:
mode:
authorJohan Klokkhammer Helsing <johan.helsing@qt.io>2016-10-10 17:52:15 +0200
committerJani Heikkinen <jani.heikkinen@qt.io>2016-10-25 04:09:38 +0000
commite522b44dd3ba6a15d9bd0c9c7396027facff0d8f (patch)
tree7dbc624b452f14e2e6035b9cfc785fc4cdc49a3e /src/client/qwaylanddisplay.cpp
parentf42acb26fba9660c1bc441385709431771fe46c0 (diff)
Client: Remove windows from keyboard focus list when destroyed
This fixes the undefined behavior in tst_WaylandClient::touchDrag and mouseDrag Note: The test still fails if run twice in a row, but it appears to be deterministic. Task-number: QTBUG-56187 Change-Id: Ib45d82224f004d1324f2ce4d6b7df05ee36c04f5 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io> (cherry picked from commit 0049240a2b7d8691f09224e1542919ddbbb0d864) Reviewed-by: Johan Helsing <johan.helsing@qt.io>
Diffstat (limited to 'src/client/qwaylanddisplay.cpp')
-rw-r--r--src/client/qwaylanddisplay.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/client/qwaylanddisplay.cpp b/src/client/qwaylanddisplay.cpp
index a5e61e28a..6e167f303 100644
--- a/src/client/qwaylanddisplay.cpp
+++ b/src/client/qwaylanddisplay.cpp
@@ -421,6 +421,12 @@ void QWaylandDisplay::handleKeyboardFocusChanged(QWaylandInputDevice *inputDevic
mLastKeyboardFocus = keyboardFocus;
}
+void QWaylandDisplay::handleWindowDestroyed(QWaylandWindow *window)
+{
+ if (mActiveWindows.contains(window))
+ handleWindowDeactivated(window);
+}
+
void QWaylandDisplay::handleWaylandSync()
{
// This callback is used to set the window activation because we may get an activate/deactivate