kwin/autotests
Martin Gräßlin bd158a6321 Reset last_active_client when a ShellClient is removed
Summary:
The last_active_client is set when an AbstractClient gets activated. For
the X11 case the last_active_client was getting reset to nullptr when
the last_active_client gets destroyed. But for the ShellClient that did
not yet happen. This could result in a crash.

This change addresses the problem and adds a test case which triggered
the crash. The condition of the crash are difficult to generate though -
it took me about an hour to write the test for the crash.

1. Wayland client must be active
2. Explicit focus to null (no active client)
3. destroy Wayland window
4. X11 client which sets focus on itself without interaction with window
  manager

Test Plan: test case no longer crashes

Reviewers: #kwin, #plasma

Subscribers: plasma-devel, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D6852
2017-07-23 16:21:38 +02:00
..
integration Reset last_active_client when a ShellClient is removed 2017-07-23 16:21:38 +02:00
libinput [libinput] Change unset of scroll method and acceleration profile 2016-12-06 13:45:54 +01:00
libkwineffects [libkwineffects] Port getXServerVersion from X11 to xcb 2016-08-23 11:45:59 +02:00
libxrenderutils [autotests] Add missing add_test() 2016-09-08 15:24:21 +02:00
tabbox [tabbox] Expose noModifierGrab to QtQuick 2017-04-12 19:46:48 +02:00
abstract_client.h
client.h
CMakeLists.txt Refactor the specification of OpenGL context attributes 2017-06-26 22:13:47 +02:00
fakeeffectplugin.cpp
fakeeffectplugin.json
fakeeffectplugin_version.cpp
fakeeffectplugin_version.json
mock_abstract_client.cpp Fix switch desktop through edge when moving window 2017-06-20 06:57:33 +02:00
mock_abstract_client.h Fix switch desktop through edge when moving window 2017-06-20 06:57:33 +02:00
mock_client.cpp Fix switch desktop through edge when moving window 2017-06-20 06:57:33 +02:00
mock_client.h Fix switch desktop through edge when moving window 2017-06-20 06:57:33 +02:00
mock_effectshandler.cpp Add a KSharedConfigPtr for kcminputrc to KWin::Application 2017-04-24 21:01:03 +02:00
mock_effectshandler.h Add a KSharedConfigPtr for kcminputrc to KWin::Application 2017-04-24 21:01:03 +02:00
mock_screens.cpp
mock_screens.h
mock_workspace.cpp
mock_workspace.h
onscreennotificationtest.cpp Fade out OnScreenNotification when moving with the mouse over it 2017-01-04 18:04:15 +01:00
onscreennotificationtest.h Introduce a KWin internal on-screen-notification service 2016-12-21 19:43:49 +01:00
opengl_context_attribute_builder_test.cpp [qpa] Use the new OpenGLContextAttributeBuilder to create Qt's OpenGL context 2017-07-17 16:53:37 +02:00
test_builtin_effectloader.cpp [effects] Add a colorpicker effect 2016-11-25 09:30:34 +01:00
test_client_machine.cpp Remove KWin::display from kwinglobals 2016-11-16 18:00:00 +01:00
test_gestures.cpp Add support for activating screenedges through touch swipe gestures 2017-03-27 17:44:02 +02:00
test_plugin_effectloader.cpp new logout effect 2017-03-15 17:47:22 +01:00
test_screen_edges.cpp Fix switch desktop through edge when moving window 2017-06-20 06:57:33 +02:00
test_screen_paint_data.cpp Pass the current output geometry to ScreenPaintData 2016-10-17 09:02:30 +02:00
test_screens.cpp
test_scripted_effectloader.cpp Add support for new touch screen callbacks to KWin scripts and scripted effects 2017-04-07 16:18:09 +02:00
test_virtual_desktops.cpp Add support for global touchpad swipe gestures 2017-03-27 17:43:44 +02:00
test_window_paint_data.cpp
test_x11_timestamp_update.cpp Improve the x11 timestamp handling 2017-05-03 21:36:34 +02:00
test_xcb_size_hints.cpp Remove KWin::display from kwinglobals 2016-11-16 18:00:00 +01:00
test_xcb_window.cpp Remove KWin::display from kwinglobals 2016-11-16 18:00:00 +01:00
test_xcb_wrapper.cpp Remove KWin::display from kwinglobals 2016-11-16 18:00:00 +01:00
test_xrandr_screens.cpp Support multiple event types in X11EventFilter 2016-11-16 07:48:19 +01:00
testutils.h [autotests] Add Q_CONSTRUCTOR_FUNCTION to X11 specific tests to force xcb 2016-09-08 15:22:48 +02:00
workspace.h