diff options
author | Johan Klokkhammer Helsing <johan.helsing@qt.io> | 2016-10-10 17:52:15 +0200 |
---|---|---|
committer | Giulio Camuffo <giulio.camuffo@kdab.com> | 2016-10-24 09:59:06 +0000 |
commit | eb1d6f4c8673b8f9c34748c8764d92e5da31971c (patch) | |
tree | 50b67a98cf6d3b91af49bf64e169a53603e8ed60 /src/client/qwaylanddisplay.cpp | |
parent | 6c92fda9a71f00be801fcfc96f5f503b70fa3f00 (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.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/client/qwaylanddisplay.cpp b/src/client/qwaylanddisplay.cpp index ae28eb779..f9a556f4d 100644 --- a/src/client/qwaylanddisplay.cpp +++ b/src/client/qwaylanddisplay.cpp @@ -411,6 +411,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 |