kwin/autotests/integration
Vlad Zahorodnii 045da603a4 Make backends part of libkwin
Platform backends are provided as plugins. This is great for
extensibility, but the disadvantages of this design outweigh the
benefits.

The number of backends will be limited, it's safe to say that we will
have to maintain three backends for many years to come - kms/drm,
virtual, and wayland. The plugin system adds unnecessary complexity.

Startup logic is affected too. At the moment, platform backends provide
the session object, which is awkward as it starts adding dependencies
between backends. It will be nicer if the session is created depending
on the loaded session type.

In some cases, wayland code needs to talk to the backend directly, e.g.
for drm leasing, etc. With the plugin architecture it's hard to do that.
Not impossible though, we can approach it as in Qt 6, but it's still
harder than linking the code directly.

Of course, the main disadvantage of shipping backends in a lib is that
you will need to patch kwin if you need a custom platform, however such
cases will be rare.

Despite that disadvantage, I still think that it's a step in the right
direction where the goal is to have multi-purpose backends and other
reusable components of kwin.

The legacy X11 standalone platform is linked directly to kwin_x11
executable, while the remaining backends are linked to libkwin.
2022-07-23 11:52:42 +00:00
..
data
effects Use floating geometry throughout 2022-07-14 10:04:46 +01:00
fakes Run clang-format 2022-03-25 13:25:15 +02:00
helper Run clang-format 2022-03-25 13:25:15 +02:00
protocols Implement the layer-shell v1 protocol 2020-09-03 18:11:44 +00:00
scripting Make Workspace track managed outputs 2022-07-21 08:43:50 +00:00
activation_test.cpp Make Workspace track managed outputs 2022-07-21 08:43:50 +00:00
activities_test.cpp move Activities singleton into Workspace 2022-07-21 15:24:51 +02:00
buffer_size_change_test.cpp autotests: client -> window 2022-04-27 12:45:46 +00:00
CMakeLists.txt autotests: Port KWinFrameworkIntegration from source vars to target based apis 2022-04-25 13:12:21 +00:00
dbus_interface_test.cpp autotests: client -> window 2022-04-27 12:45:46 +00:00
debug_console_test.cpp Make Workspace track managed outputs 2022-07-21 08:43:50 +00:00
decoration_input_test.cpp move DecorationBridge singleton into Workspace 2022-07-21 15:24:57 +02:00
desktop_window_x11_test.cpp Make Workspace track managed outputs 2022-07-21 08:43:50 +00:00
dont_crash_aurorae_destroy_deco.cpp Make Workspace track managed outputs 2022-07-21 08:43:50 +00:00
dont_crash_cancel_animation.cpp Realtime screen edges gestures for scripted effects 2022-05-03 13:43:38 +00:00
dont_crash_cursor_physical_size_empty.cpp autotests: client -> window 2022-04-27 12:45:46 +00:00
dont_crash_empty_deco.cpp Make Workspace track managed outputs 2022-07-21 08:43:50 +00:00
dont_crash_glxgears.cpp autotests: client -> window 2022-04-27 12:45:46 +00:00
dont_crash_no_border.cpp Make Workspace track managed outputs 2022-07-21 08:43:50 +00:00
dont_crash_reinitialize_compositor.cpp Make Workspace track managed outputs 2022-07-21 08:43:50 +00:00
dont_crash_useractions_menu.cpp Make Workspace track managed outputs 2022-07-21 08:43:50 +00:00
generic_scene_opengl_test.cpp Rename AbstractClient to Window 2022-04-22 17:39:12 +00:00
generic_scene_opengl_test.h Run clang-format 2022-03-25 13:25:15 +02:00
globalshortcuts_test.cpp autotests: client -> window 2022-04-27 12:45:46 +00:00
idle_inhibition_test.cpp wayland: Introduce IdleDetector 2022-06-29 20:27:50 +03:00
input_stacking_order.cpp Make Workspace track managed outputs 2022-07-21 08:43:50 +00:00
inputmethod_test.cpp move InputMethod singleton to Application 2022-07-21 15:16:40 +02:00
internal_window.cpp Make Workspace track managed outputs 2022-07-21 08:43:50 +00:00
keyboard_layout_test.cpp Prefer the term "window" over "client" in Workspace 2022-04-25 11:33:55 +00:00
keymap_creation_failure_test.cpp Rename AbstractClient to Window 2022-04-22 17:39:12 +00:00
kwin_wayland_test.cpp Make backends part of libkwin 2022-07-23 11:52:42 +00:00
kwin_wayland_test.h Drop ApplicationWaylandAbstract 2022-07-15 12:18:03 +00:00
kwinbindings_test.cpp autotests: client -> window 2022-04-27 12:45:46 +00:00
layershellv1window_test.cpp Make Workspace track managed outputs 2022-07-21 08:43:50 +00:00
lockscreen.cpp Make Workspace track managed outputs 2022-07-21 08:43:50 +00:00
maximize_test.cpp move DecorationBridge singleton into Workspace 2022-07-21 15:24:57 +02:00
modifier_only_shortcut_test.cpp Run clang-format 2022-03-25 13:25:15 +02:00
move_resize_window_test.cpp Make Workspace track managed outputs 2022-07-21 08:43:50 +00:00
nightcolor_test.cpp Run clang-format 2022-03-25 13:25:15 +02:00
no_global_shortcuts_test.cpp Run clang-tidy with -checks=readability-braces-around-statements fixit 2022-03-28 10:54:11 +00:00
outputchanges_test.cpp Make Workspace track managed outputs 2022-07-21 08:43:50 +00:00
placement_test.cpp Make Workspace track managed outputs 2022-07-21 08:43:50 +00:00
plasma_surface_test.cpp Make Workspace track managed outputs 2022-07-21 08:43:50 +00:00
plasmawindow_test.cpp Make Workspace track managed outputs 2022-07-21 08:43:50 +00:00
platformcursor.cpp Run clang-format 2022-03-25 13:25:15 +02:00
pointer_constraints_test.cpp Make Workspace track managed outputs 2022-07-21 08:43:50 +00:00
pointer_input.cpp Make Workspace track managed outputs 2022-07-21 08:43:50 +00:00
quick_tiling_test.cpp move DecorationBridge singleton into Workspace 2022-07-21 15:24:57 +02:00
scene_opengl_es_test.cpp Run clang-format 2022-03-25 13:25:15 +02:00
scene_opengl_test.cpp Run clang-format 2022-03-25 13:25:15 +02:00
scene_qpainter_test.cpp Make Workspace track managed outputs 2022-07-21 08:43:50 +00:00
screen_changes_test.cpp Make Workspace track managed outputs 2022-07-21 08:43:50 +00:00
screenedge_client_show_test.cpp Make Workspace track managed outputs 2022-07-21 08:43:50 +00:00
screenedges_test.cpp autotests: client -> window 2022-04-27 12:45:46 +00:00
screens_test.cpp Make Workspace track managed outputs 2022-07-21 08:43:50 +00:00
shade_test.cpp Make Workspace track managed outputs 2022-07-21 08:43:50 +00:00
showing_desktop_test.cpp autotests: client -> window 2022-04-27 12:45:46 +00:00
stacking_order_test.cpp Some client/toplevel -> window 2022-04-29 17:47:39 +03:00
struts_test.cpp Make Workspace track managed outputs 2022-07-21 08:43:50 +00:00
tabbox_test.cpp Prefer the term "window" over "client" in Workspace 2022-04-25 11:33:55 +00:00
test_helpers.cpp autotests: client -> window 2022-04-27 12:45:46 +00:00
test_virtualkeyboard_dbus.cpp move InputMethod singleton to Application 2022-07-21 15:16:40 +02:00
touch_input_test.cpp Make Workspace track managed outputs 2022-07-21 08:43:50 +00:00
transient_placement.cpp Make Workspace track managed outputs 2022-07-21 08:43:50 +00:00
virtual_desktop_test.cpp autotests: client -> window 2022-04-27 12:45:46 +00:00
window_rules_test.cpp Make Workspace track managed outputs 2022-07-21 08:43:50 +00:00
window_selection_test.cpp Make Workspace track managed outputs 2022-07-21 08:43:50 +00:00
x11_window_test.cpp Make Workspace track managed outputs 2022-07-21 08:43:50 +00:00
xdgshellwindow_rules_test.cpp Make Workspace track managed outputs 2022-07-21 08:43:50 +00:00
xdgshellwindow_test.cpp Make Workspace track managed outputs 2022-07-21 08:43:50 +00:00
xwayland_input_test.cpp Make Workspace track managed outputs 2022-07-21 08:43:50 +00:00
xwayland_selections_test.cpp Make Workspace track managed outputs 2022-07-21 08:43:50 +00:00
xwaylandserver_crash_test.cpp Make Workspace track managed outputs 2022-07-21 08:43:50 +00:00
xwaylandserver_restart_test.cpp autotests: Port more tests from obsolete Screens 2022-07-12 07:05:45 +00:00