kwin/autotests
Martin Flöser abedb464d5 [QPA] Implement Screen on top of internal Screens API
Summary:
The test DontCrashUseractionsMenu (Waylandonly) found an issue in our
screen handling implementation in the QPA. The code exposed a short time
frame between the dummy screen getting destroyed and the first screen
being added. This could result in a crash of KWin.

There is actually no need to implement Screen on top of Wayland screen.
KWin has all the knowledge, so we can also base this on top of the
Screens API.

Advantages:
 * no delays due to Wayland roundtrips
 * handle screen getting removed (was a TODO)
 * handle resolution changes (was a TODO)

The new implementation has a disadvantage that it destroys and readds
all screens whenever something around the screen changes. This shouldn't
be an issue in practice as it's only for the internal QPA and thus only
affects KWin internal windows which is placed in global coordinates
anyway. If it turns out to be a problem we need to track better the
screen changes - so far those were not tracked at all.

Test Plan: Run a few unit tests which change screens

Reviewers: #kwin, #plasma

Subscribers: plasma-devel, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D8345
2017-10-19 18:03:10 +02:00
..
integration [QPA] Implement Screen on top of internal Screens API 2017-10-19 18:03:10 +02:00
libinput Fix TouchEvent::id() returning -1, fixes a crash 2017-09-19 07:11:40 +03:00
libkwineffects [libkwineffects] Port getXServerVersion from X11 to xcb 2016-08-23 11:45:59 +02:00
libxrenderutils [autotests] Fix unused function warnings 2017-07-29 18:47:58 +02:00
tabbox Fix: Missing dependencies for kwin autotests 2017-10-04 10:12:06 +01:00
abstract_client.h [autotests] Adjust to changes regarding AbstractClient 2015-05-08 12:43:47 +02:00
client.h [auto-tests] Add an initial test for Screens 2014-09-17 10:29:03 +02:00
CMakeLists.txt Add DBus protocol to virtual keyboard 2017-10-19 17:59:19 +02:00
fakeeffectplugin.cpp [kwin] Add a PluginEffectLoader 2014-03-28 14:04:54 +01:00
fakeeffectplugin.json PluginEffectLoader doesn't use KPluginTrader any more 2015-07-07 09:36:15 +02:00
fakeeffectplugin_version.cpp [kwin] Adapt to KPluginFactory change 2014-03-28 19:50:46 +00:00
fakeeffectplugin_version.json PluginEffectLoader doesn't use KPluginTrader any more 2015-07-07 09:36:15 +02:00
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 Warnings--: unused parameters 2015-06-12 17:17:21 +02:00
mock_screens.h add Screens::name(int screen); STUB but for XRandr 2015-05-15 23:55:27 +02:00
mock_workspace.cpp [autotests] Adjust to changes regarding AbstractClient 2015-05-08 12:43:47 +02:00
mock_workspace.h Move XRandR event filter into XRandRScreens 2017-09-12 18:53:08 +02:00
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 [platforms/x11] Use a GlxContextAttributeBuilder 2017-08-19 11:34:51 +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_gbm_surface.cpp Fix DRM EGL crash regression 2017-10-11 20:04:13 +02: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 Move X11 specific event filtering for ScreenEdges into x11 standalone platform 2017-09-01 17:01:01 +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 Port left over qDebug to qCDebug 2015-07-31 13:25:51 +02:00
test_scripted_effectloader.cpp Port some displayWidth/displayHeight usages to Screens::size() 2017-09-01 17:11:10 +02:00
test_virtual_desktops.cpp Add support for global touchpad swipe gestures 2017-03-27 17:43:44 +02:00
test_virtualkeyboard_dbus.cpp Add DBus protocol to virtual keyboard 2017-10-19 17:59:19 +02:00
test_window_paint_data.cpp Remove the decoration opacity property 2014-08-25 17:25:04 +02:00
test_x11_timestamp_update.cpp [autotests] Fix testX11TimestampUpdate after latest change 2017-08-24 21:48:29 +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_xkb.cpp Support mapping QKeyEvent to xkb_keysym_t 2017-09-19 19:09:17 +02:00
test_xrandr_screens.cpp Support multiple event types in X11EventFilter 2016-11-16 07:48:19 +01:00
testutils.h [autotests] Fix unused function warnings 2017-07-29 18:47:58 +02:00
workspace.h [auto-tests] Add an initial test for Screens 2014-09-17 10:29:03 +02:00