kwin/autotests/integration
Vlad Zahorodnii e31ec802f4 Drop Deleted
Currently, the normal window lifecycle looks as follows: create Window,
wait until it's shown, add it to Workspace, wait until it's closed,
create a Deleted, copy properties from the original window to the
deleted one, destroy the original window, wait until the last deleted
window reference is dropped.

There are a couple of issues with this design: we can't nicely
encapsulate X11 or Wayland specific implementation details if they need
to be accessed for closed windows; manual copying of properties is
cumbersome and error prone and we've had a dozen of cases where effects
worked incorrectly because some properties had not been copied.

The goal of this patch is to drop Deleted and extend the lifetime of the
original window, but with a special state set: Window::isDeleted().

The main danger is that somebody can try to do something with deleted
windows that they should not do, but on the other hand, such code needs
to be guarded with relevant checks too.
2023-03-28 08:31:08 +00:00
..
data Drop support for _KDE_NET_WM_TEMPORARY_RULES 2023-02-02 15:34:24 +00:00
effects cmake: Tidy scripted effect CMakeLists.txt code 2023-03-21 07:18:27 +00:00
fakes adapt to kdecoration changes 2023-03-19 15:26:15 +00:00
helper build: Add -Wno-unused-parameter compiler option 2022-10-31 15:50:37 +00:00
protocols
scripting Port to versionless QML module imports 2023-03-12 14:18:34 +00:00
activation_test.cpp Port away from Cursor::setPos() 2023-02-13 14:17:10 +02:00
activities_test.cpp Remove some include_directories() 2023-03-23 14:37:48 +02:00
buffer_size_change_test.cpp scene: Rename Scene to WorkspaceScene 2022-12-21 11:49:07 +02:00
CMakeLists.txt autotests: Drop night color test 2023-03-01 15:50:10 +00:00
dbus_interface_test.cpp Tidy Window::windowClosed() signal 2023-03-14 07:15:56 +00:00
debug_console_test.cpp Make Workspace::allClientList() return all windows 2023-03-15 11:52:01 +00:00
decoration_input_test.cpp Remove some include_directories() 2023-03-23 14:37:48 +02:00
desktop_window_x11_test.cpp Remove some include_directories() 2023-03-23 14:37:48 +02:00
dont_crash_aurorae_destroy_deco.cpp Remove some include_directories() 2023-03-23 14:37:48 +02:00
dont_crash_cancel_animation.cpp Tidy Window::windowClosed() signal 2023-03-14 07:15:56 +00:00
dont_crash_empty_deco.cpp Remove some include_directories() 2023-03-23 14:37:48 +02:00
dont_crash_glxgears.cpp Drop Workspace::clientList() 2023-03-24 22:28:46 +00:00
dont_crash_no_border.cpp Remove some include_directories() 2023-03-23 14:37:48 +02:00
dont_crash_reinitialize_compositor.cpp cmake: Tidy scripted effect CMakeLists.txt code 2023-03-21 07:18:27 +00:00
dont_crash_useractions_menu.cpp Port away from Cursor::setPos() 2023-02-13 14:17:10 +02:00
fractional_scaling_test.cpp Port away from Cursor::setPos() 2023-02-13 14:17:10 +02:00
generic_scene_opengl_test.cpp scene: Rename Scene to WorkspaceScene 2022-12-21 11:49:07 +02:00
generic_scene_opengl_test.h
globalshortcuts_test.cpp Make Workspace::allClientList() return all windows 2023-03-15 11:52:01 +00:00
idle_inhibition_test.cpp Merge Window::minimize and Window::unminimize 2023-03-07 12:20:07 +00:00
input_stacking_order.cpp Remove some include_directories() 2023-03-23 14:37:48 +02:00
inputmethod_test.cpp Replace Deleted with Window where possible 2023-03-13 14:41:44 +02:00
internal_window.cpp Make Workspace::allClientList() return all windows 2023-03-15 11:52:01 +00:00
keyboard_layout_test.cpp autotests: Port away from OutputBackend::setInitialWindowSize() 2022-11-17 14:20:44 +00:00
keymap_creation_failure_test.cpp autotests: Port away from OutputBackend::setInitialWindowSize() 2022-11-17 14:20:44 +00:00
kwin_wayland_test.cpp Launch xwayland on demand 2023-02-06 16:24:01 +00:00
kwin_wayland_test.h Fix -Wambiguous-reversed-operator 2023-03-14 17:46:57 +02:00
kwinbindings_test.cpp Rename Window::desktopChanged() 2023-02-25 13:15:06 +00:00
layershellv1window_test.cpp Port away from Cursor::setPos() 2023-02-13 14:17:10 +02:00
lockscreen.cpp Remove some include_directories() 2023-03-23 14:37:48 +02:00
maximize_test.cpp Adjust to KDecoration API changes 2023-03-12 13:29:36 +00:00
modifier_only_shortcut_test.cpp Port away from Cursor::setPos() 2023-02-13 14:17:10 +02:00
move_resize_window_test.cpp Tidy Window::windowClosed() signal 2023-03-14 07:15:56 +00:00
no_global_shortcuts_test.cpp Port away from Cursor::setPos() 2023-02-13 14:17:10 +02:00
outputchanges_test.cpp Port away from Cursor::setPos() 2023-02-13 14:17:10 +02:00
placement_test.cpp placement: add autotests for cascade if covering 2023-03-08 19:04:57 +00:00
plasma_surface_test.cpp Rename Window::desktopChanged() 2023-02-25 13:15:06 +00:00
plasmawindow_test.cpp Remove some include_directories() 2023-03-23 14:37:48 +02:00
platformcursor.cpp autotests: Port away from OutputBackend::setInitialWindowSize() 2022-11-17 14:20:44 +00:00
pointer_constraints_test.cpp Port away from QRectF::contains() 2023-02-21 19:45:51 +00:00
pointer_input.cpp Improve Workspace::outputAt() 2023-03-25 21:24:59 +00:00
quick_tiling_test.cpp Tidy Window::windowClosed() signal 2023-03-14 07:15:56 +00:00
scene_opengl_es_test.cpp
scene_opengl_test.cpp
screen_changes_test.cpp Port away from Cursor::setPos() 2023-02-13 14:17:10 +02:00
screenedge_client_show_test.cpp Remove some include_directories() 2023-03-23 14:37:48 +02:00
screenedges_test.cpp cursor: make position, hotspot and size floating point 2023-02-20 21:01:39 +00:00
screens_test.cpp Port away from Cursor::setPos() 2023-02-13 14:17:10 +02:00
shade_test.cpp Remove some include_directories() 2023-03-23 14:37:48 +02:00
showing_desktop_test.cpp autotests: Port away from OutputBackend::setInitialWindowSize() 2022-11-17 14:20:44 +00:00
stacking_order_test.cpp Drop Deleted 2023-03-28 08:31:08 +00:00
struts_test.cpp Remove some include_directories() 2023-03-23 14:37:48 +02:00
tabbox_test.cpp Port away from Cursor::setPos() 2023-02-13 14:17:10 +02:00
test_helpers.cpp Fix -Wambiguous-reversed-operator 2023-03-14 17:46:57 +02:00
test_virtualkeyboard_dbus.cpp autotests: Port away from OutputBackend::setInitialWindowSize() 2022-11-17 14:20:44 +00:00
tiles_test.cpp Remove some include_directories() 2023-03-23 14:37:48 +02:00
touch_input_test.cpp Port away from Cursor::setPos() 2023-02-13 14:17:10 +02:00
transient_placement.cpp Remove some include_directories() 2023-03-23 14:37:48 +02:00
virtual_desktop_test.cpp Drop Window::desktopPresenceChanged() 2023-02-23 22:10:37 +00:00
window_rules_test.cpp Tidy Window::windowClosed() signal 2023-03-14 07:15:56 +00:00
window_selection_test.cpp Port away from QRectF::contains() 2023-02-21 19:45:51 +00:00
x11_window_test.cpp Drop Deleted 2023-03-28 08:31:08 +00:00
xdgshellwindow_rules_test.cpp Merge Window::minimize and Window::unminimize 2023-03-07 12:20:07 +00:00
xdgshellwindow_test.cpp port more stuff to standard smart pointers 2023-03-20 14:16:37 +01:00
xwayland_input_test.cpp Tidy Window::windowClosed() signal 2023-03-14 07:15:56 +00:00
xwayland_selections_test.cpp autotests: Port away from OutputBackend::setInitialWindowSize() 2022-11-17 14:20:44 +00:00
xwaylandserver_crash_test.cpp Make Workspace::allClientList() return all windows 2023-03-15 11:52:01 +00:00
xwaylandserver_restart_test.cpp Launch xwayland on demand 2023-02-06 16:24:01 +00:00