kwin/autotests/integration
Martin Flöser 02a0561016 Add windowsystem plugin for KWin's qpa
Summary:
KWindowSystem provides a plugin interface to have platform specific
implementations. So far KWin relied on the implementation in
KWayland-integration repository.

This is something I find unsuited, for the following reasons:
 * any test in KWin for functionality set through the plugin would fail
 * it's not clear what's going on where
 * in worst case some code could deadlock
 * KWin shouldn't use KWindowSystem and only a small subset is allowed
to be used

The last point needs some further explanation. KWin internally does not
and cannot use KWindowSystem. KWindowSystem (especially KWindowInfo) is
exposing information which KWin sets. It's more than weird if KWin asks
KWindowSystem for the state of a window it set itself. On X11 it's just
slow, on Wayland it can result in roundtrips to KWin itself which is
dangerous.

But due to using Plasma components we have a few areas where we use
KWindowSystem. E.g. a Plasma::Dialog sets a window type, the slide in
direction, blur and background contrast. This we want to support and
need to support. Other API elements we do not want, like for examples
the available windows. KWin internal windows either have direct access
to KWin or a scripting interface exposed providing (limited) access -
there is just no need to have this in KWindowSystem.

To make it more clear what KWin supports as API of KWindowSystem for
internal windows this change implements a stripped down version of the
kwayland-integration plugin. The main difference is that it does not use
KWayland at all, but a QWindow internal side channel.

To support this EffectWindow provides an accessor for internalWindow and
the three already mentioned effects are adjusted to read from the
internal QWindow and it's dynamic properties.

This change is a first step for a further refactoring. I plan to split
the internal window out of ShellClient into a dedicated class. I think
there are nowadays too many special cases. If it moves out there is the
question whether we really want to use Wayland for the internal windows
or whether this is just historic ballast (after all we used to use
qwayland for that in the beginning).

As the change could introduce regressions I'm targetting 5.16.

Test Plan:
new test case for window type, manual testing using Alt+Tab
for the effects integration. Sliding popups, blur and contrast worked fine.

Reviewers: #kwin

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D18228
2019-01-27 08:59:58 +01:00
..
data Add support for desktopFileName provided by NETWinInfo 2016-10-31 13:19:46 +01:00
effects [autotests] Use unloadAllEffects 2019-01-20 13:52:30 +02:00
fakes [scenes/opengl] Fix overlapping shadow tiles 2018-06-07 12:07:57 +03:00
helper XdgV6 - Kwin side 2017-09-25 16:47:30 +01:00
scripting Fix minor EBN issues 2018-08-29 21:02:16 +03:00
activities_test.cpp Fix the way how we quit kactivitymanagerd from the unit test 2018-11-09 17:27:07 +01:00
CMakeLists.txt Add a dbus method getWindowInfo returning same data as queryWindowInfo 2018-12-17 18:12:17 +01:00
colorcorrect_nightcolor_test.cpp [autotests] Stabilise colorcorrect test 2018-11-30 11:37:41 +00:00
dbus_interface_test.cpp Port window specific rules dialog to DBus 2018-12-31 07:58:12 +01:00
debug_console_test.cpp [platforms/virtual] Add virtual output class 2018-03-19 22:12:22 +01:00
decoration_input_test.cpp [autotests] Update tests to use stable version of xdg-shell 2019-01-20 13:52:30 +02:00
desktop_window_x11_test.cpp [platforms/virtual] Add virtual output class 2018-03-19 22:12:22 +01:00
dont_crash_aurorae_destroy_deco.cpp [autotests] Don't check whether there is a /dev/dri/card0 2019-01-12 07:36:28 +01:00
dont_crash_cancel_animation.cpp [autotests/integration] Use socketpair for Wayland connection 2016-12-15 21:31:27 +01:00
dont_crash_cursor_physical_size_empty.cpp [autotests] Update tests to use stable version of xdg-shell 2019-01-20 13:52:30 +02:00
dont_crash_empty_deco.cpp [autotests] Don't check whether there is a /dev/dri/card0 2019-01-12 07:36:28 +01:00
dont_crash_glxgears.cpp
dont_crash_no_border.cpp [autotests] Update tests to use stable version of xdg-shell 2019-01-20 13:52:30 +02:00
dont_crash_reinitialize_compositor.cpp [autotests] Don't check whether there is a /dev/dri/card0 2019-01-12 07:36:28 +01:00
dont_crash_useractions_menu.cpp [platforms/virtual] Add virtual output class 2018-03-19 22:12:22 +01:00
generic_scene_opengl_test.cpp [autotests] Don't check whether there is a /dev/dri/card0 2019-01-12 07:36:28 +01:00
generic_scene_opengl_test.h [autotests] Test creating core context profile 2017-06-25 09:48:46 +02:00
globalshortcuts_test.cpp Don't try to filter null key combinations 2018-04-24 16:35:23 +02:00
idle_inhibition_test.cpp [wayland] Don't honor the idle inhibitor object if the surface is not visible 2019-01-11 15:14:16 +02:00
input_stacking_order.cpp [platforms/virtual] Add virtual output class 2018-03-19 22:12:22 +01:00
internal_window.cpp Add windowsystem plugin for KWin's qpa 2019-01-27 08:59:58 +01:00
keyboard_layout_test.cpp Fix KeyboardLayoutTest::testNumLock 2018-11-15 19:01:51 +01:00
keymap_creation_failure_test.cpp Better handle cases when the xkb keymap fails to be created 2017-06-18 21:04:58 +02:00
kwin_wayland_test.cpp Ensure the Compositor does not start during termination 2019-01-12 07:36:55 +01:00
kwin_wayland_test.h Add high DPI support to internal KWin windows 2019-01-14 13:59:05 +00:00
kwinbindings_test.cpp [autotests] Try making KWinBindingsTest::testSwitchWindowScript more robust 2017-08-13 17:08:49 +02:00
lockscreen.cpp [autotests] Don't check whether there is a /dev/dri/card0 2019-01-12 07:36:28 +01:00
maximize_test.cpp [wayland] Fix maximised test 2018-11-16 12:28:38 +00:00
modifier_only_shortcut_test.cpp [autotests] Force XKB_DEFAULT_RULES to evdev in ModifierOnlyShortcutsTest 2017-09-17 20:54:32 +02:00
move_resize_window_test.cpp [autotests] Update tests to use stable version of xdg-shell 2019-01-20 13:52:30 +02:00
no_global_shortcuts_test.cpp Introduce a command line option to disable any kind of global shortcuts 2018-12-13 19:36:28 +01:00
no_xdg_runtime_dir_test.cpp
plasma_surface_test.cpp [autotests] Update tests to use stable version of xdg-shell 2019-01-20 13:52:30 +02:00
plasmawindow_test.cpp [autotests] Don't check whether there is a /dev/dri/card0 2019-01-12 07:36:28 +01:00
platformcursor.cpp
pointer_constraints_test.cpp [autotests] Update tests to use stable version of xdg-shell 2019-01-20 13:52:30 +02:00
pointer_input.cpp [wayland] Don't use hardcoded move-resize cursor 2018-12-31 12:35:01 +02:00
quick_tiling_test.cpp [autotests] Handle async maximisation in quick tiling test 2018-11-08 01:50:51 +00:00
scene_opengl_es_test.cpp [autotests] Introduce a SceneOpenGL ES test 2017-06-24 21:05:49 +02:00
scene_opengl_shadow_test.cpp [autotests] Don't check whether there is a /dev/dri/card0 2019-01-12 07:36:28 +01:00
scene_opengl_test.cpp [autotests] Introduce a SceneOpenGL ES test 2017-06-24 21:05:49 +02:00
scene_qpainter_shadow_test.cpp compare doubles to doubles 2018-06-14 09:21:07 +01:00
scene_qpainter_test.cpp [autotests] Update tests to use stable version of xdg-shell 2019-01-20 13:52:30 +02:00
screen_changes_test.cpp Add XDG Output support 2018-05-18 14:16:13 +01:00
screenedge_client_show_test.cpp [platforms/virtual] Add virtual output class 2018-03-19 22:12:22 +01:00
shade_test.cpp [platforms/virtual] Add virtual output class 2018-03-19 22:12:22 +01:00
shell_client_rules_test.cpp [autotests] Update tests to use stable version of xdg-shell 2019-01-20 13:52:30 +02:00
shell_client_test.cpp Add windowsystem plugin for KWin's qpa 2019-01-27 08:59:58 +01:00
showing_desktop_test.cpp Restore active client after ending showing desktop 2017-07-01 08:20:01 +02:00
stacking_order_test.cpp [autotests] Add tests for keep-above and keep-below states 2019-01-01 17:29:14 +02:00
start_test.cpp Introduce a command line option to disable any kind of global shortcuts 2018-12-13 19:36:28 +01:00
struts_test.cpp [platforms/virtual] Add virtual output class 2018-03-19 22:12:22 +01:00
tabbox_test.cpp [autotests/integration] Use socketpair for Wayland connection 2016-12-15 21:31:27 +01:00
test_helpers.cpp [wayland] XdgDecoration Support 2019-01-01 17:53:48 +00:00
touch_input_test.cpp Hide mouse cursor when interacting with touch screen 2018-12-13 18:55:46 +01:00
transient_no_input_test.cpp [wayland] XdgPopup Positioning 2018-10-20 17:17:59 +01:00
transient_placement.cpp Honor struts when placing Wayland transients 2018-12-31 07:58:50 +01:00
virtual_desktop_test.cpp [autotests] Update tests to use stable version of xdg-shell 2019-01-20 13:52:30 +02:00
window_rules_test.cpp Re-evaluate the window rules when the window class of a Client changes 2018-11-07 09:33:39 +01:00
window_selection_test.cpp Rework InputDeviceHandler focus tracking 2018-12-02 21:36:11 +01:00
x11_client_test.cpp Introduce the concept of an internal window system independent id 2018-12-01 12:17:05 +01:00
xclipboardsync_test.cpp Temporarily skip XClipboardSyncTest 2018-11-15 14:31:38 +01:00
xwayland_input_test.cpp [platforms/virtual] Add virtual output class 2018-03-19 22:12:22 +01:00