kwin/src
Vlad Zahorodnii 81f9da17fd Drop resize effect
After recent refactor changes to improve resizing of xdg-toplevel
surfaces with an aspect ratio, the resize effect got really broken. The
resize effect has always been a problem child on wayland.

Unlike X11, geometry updates are performed asynchronously on Wayland.
It's not possible to have a smooth transition after finishing
interactive resize from the resized state to the normal state, geometry
will jump from last moveResizeGeometry() to the current frameGeometry()
and when the client repaints the window, the window size will jump back
to the move resize geometry size. There are no ways to fix that without
contradicting to how the effect is advertised to work, e.g. sending
configure events behind the back. Keeping the frame geometry out of sync
with the xdg_surface window geometry size is also not the option,
geometry updates are already too complex (due to being async).

Another wayland related issue with the resize effect is that the
compositor doesn't know about aspect ratio or any other size
constraints, except min and max size. The client can provide a smaller
buffer to account for various geometry constraints. It will be confusing
to have a mismatch between resize outline and the final real geometry.
Aspect ratio or other geometry constraints won't be exposed to the
compositor, it's a common decision of many wayland devs (including KDE).

To some extent, the wayland issues can be addressed by performing content
updates, with active feedback, the mismatch between outline and the
final geometry would become less severe, but it won't be any different
than resizing without the effect.

Given the wayland issues and in part maintenance costs, this change
drops the resize effect. Note that it can be still reimplemented without
kwin core changes, but it would still suffer from the aforementioned
issues.

BUG: 443434
2022-01-05 19:00:22 +02:00
..
3rdparty
backends backends/drm: hide cursor again 2022-01-05 16:39:56 +01:00
decorations Invalidate decoration explicitly 2021-12-15 12:47:27 +00:00
effects Drop resize effect 2022-01-05 19:00:22 +02:00
helpers wayland: Avoid creating abstract socket for Xwayland on FreeBSD 2021-12-16 09:17:28 +00:00
kcmkwin Rework determining of scripted effect config 2022-01-05 08:12:13 +01:00
libkwineffects Drop resize effect 2022-01-05 19:00:22 +02:00
platformsupport backends/drm: improve dmabuf feedback 2022-01-03 10:45:44 +00:00
plugins SVN_SILENT made messages (.desktop file) - always resolve ours 2021-12-31 01:42:54 +00:00
qml
scenes Move graphics reset handling to RenderBackend 2022-01-02 22:29:36 +02:00
scripting SVN_SILENT made messages (.desktop file) - always resolve ours 2021-12-15 01:55:28 +00:00
scripts kwin scripts: No longer copy videowall metadata file in kservices folder 2022-01-05 08:13:09 +01:00
tabbox TabBox: Add SwitcherItem to declarative API 3.0 2022-01-04 20:07:45 +00:00
xwl wayland: Avoid creating abstract socket for Xwayland on FreeBSD 2021-12-16 09:17:28 +00:00
abstract_client.cpp Drop resize effect 2022-01-05 19:00:22 +02:00
abstract_client.h Drop resize effect 2022-01-05 19:00:22 +02:00
abstract_opengl_context_attribute_builder.cpp set EGL_NV_robustness_video_memory_purge where applicable 2021-11-22 14:00:37 +00:00
abstract_opengl_context_attribute_builder.h
abstract_output.cpp make software cursors work per output 2021-12-28 18:42:29 +00:00
abstract_output.h make software cursors work per output 2021-12-28 18:42:29 +00:00
abstract_wayland_output.cpp Apply the rgbrange read from Kscreen configuration on startup 2022-01-03 15:40:52 +00:00
abstract_wayland_output.h platforms/drm: more dynamic crtc assignment 2021-11-09 22:15:31 +01:00
activation.cpp Remove boolean trap in AbstractClient::isShown() 2021-11-24 08:11:35 +00:00
activities.cpp port everything away from Q_FOREACH 2021-11-08 14:19:05 +00:00
activities.h
appmenu.cpp Do not ask for decoration settings without guarding 2021-10-17 14:41:34 +00:00
appmenu.h Run clazy with qt-keywords fixit 2021-06-08 10:49:42 +03:00
atoms.cpp xwl: Sync primary selection 2021-08-19 06:46:23 +00:00
atoms.h xwl: Sync primary selection 2021-08-19 06:46:23 +00:00
client_machine.cpp Run clazy with qt-keywords fixit 2021-06-08 10:49:42 +03:00
client_machine.h
CMakeLists.txt Drop geometry tip 2022-01-04 07:36:42 +00:00
colordevice.cpp Re-enable proper gamma ramps with AMS 2021-11-01 14:38:27 +01:00
colordevice.h
colormanager.cpp Run clazy with qt-keywords fixit 2021-06-08 10:49:42 +03:00
colormanager.h
composite.cpp Use default member initialization in Compositor consistently 2022-01-03 10:51:21 +02:00
composite.h Use default member initialization in Compositor consistently 2022-01-03 10:51:21 +02:00
config-kwin.h.cmake backends/drm,wayland: require gbm 2021-11-12 08:25:15 +00:00
cursor.cpp make software cursors work per output 2021-12-28 18:42:29 +00:00
cursor.h make software cursors work per output 2021-12-28 18:42:29 +00:00
dbusinterface.cpp Introduce explicit base render backend type 2021-11-11 08:55:29 +00:00
dbusinterface.h dbusinterface: Add doc comment for replace() method 2021-11-08 08:31:01 +00:00
debug_console.cpp Introduce base InputDevice class 2021-11-01 16:27:16 +02:00
debug_console.h Introduce base InputDevice class 2021-11-01 16:27:16 +02:00
debug_console.ui Add clipboard tab to debug console 2021-09-03 08:40:07 +00:00
decorationitem.cpp Improve window decorations in OpenGL scene 2021-12-30 09:07:42 +00:00
decorationitem.h Improve window decorations in OpenGL scene 2021-12-30 09:07:42 +00:00
deleted.cpp Drop Toplevel::bufferScale() 2021-11-16 09:38:51 +02:00
deleted.h Drop Toplevel::bufferScale() 2021-11-16 09:38:51 +02:00
dmabuftexture.cpp plugins/screencast: Introduce base ScreenCastSource type 2021-11-16 07:24:03 +00:00
dmabuftexture.h plugins/screencast: Introduce base ScreenCastSource type 2021-11-16 07:24:03 +00:00
dpmsinputeventfilter.cpp Add support to DPMS to the Wayland Backend 2021-07-09 02:41:26 +02:00
dpmsinputeventfilter.h Add support to DPMS to the Wayland Backend 2021-07-09 02:41:26 +02:00
effectloader.cpp autotests: Drop effect loader tests 2021-12-08 16:29:55 +00:00
effectloader.h Ensure binary effects are loaded before cleints 2021-11-24 12:50:05 +02:00
effects.cpp Replace abort() with Q_ASSERT and Q_UNREACHABLE 2022-01-04 10:28:42 +02:00
effects.h Rename EffectQuickScene to OffscreenQuickScene 2021-11-23 09:53:18 +00:00
egl_context_attribute_builder.cpp set EGL_NV_robustness_video_memory_purge where applicable 2021-11-22 14:00:37 +00:00
egl_context_attribute_builder.h
events.cpp Move X11-specific code from interactive move resize handler to X11Client 2022-01-04 07:36:42 +00:00
focuschain.cpp Remove boolean trap in AbstractClient::isShown() 2021-11-24 08:11:35 +00:00
focuschain.h Port FocusChain to AbstractOutput 2021-08-29 21:55:07 +00:00
ftrace.cpp Run clazy with qt-keywords fixit 2021-06-08 10:49:42 +03:00
ftrace.h
gestures.cpp improve gesture recognition 2021-07-09 20:28:04 +00:00
gestures.h improve gesture recognition 2021-07-09 20:28:04 +00:00
globalshortcuts.cpp Lay some groundwork for realtime gestures in Wayland 2021-09-01 19:48:41 -04:00
globalshortcuts.h Lay some groundwork for realtime gestures in Wayland 2021-09-01 19:48:41 -04:00
group.cpp
group.h
hide_cursor_spy.cpp make software cursors work per output 2021-12-28 18:42:29 +00:00
hide_cursor_spy.h wayland: show cursor if stylus is in proximity 2021-11-29 17:37:58 +00:00
idle_inhibition.cpp Remove boolean trap in AbstractClient::isShown() 2021-11-24 08:11:35 +00:00
idle_inhibition.h
input.cpp Fix tests by checking if InputMethod::self() is null. 2022-01-03 18:34:53 -08:00
input.h Make focused window and decoration mutually exclusive 2021-12-17 07:19:41 +00:00
input_event.cpp Introduce base InputDevice class 2021-11-01 16:27:16 +02:00
input_event.h Introduce base InputDevice class 2021-11-01 16:27:16 +02:00
input_event_spy.cpp Add support for hold gestures 2021-10-26 08:16:52 +00:00
input_event_spy.h Add support for hold gestures 2021-10-26 08:16:52 +00:00
inputbackend.cpp Introduce base InputDevice class 2021-11-01 16:27:16 +02:00
inputbackend.h Introduce base InputDevice class 2021-11-01 16:27:16 +02:00
inputdevice.cpp Introduce base InputDevice class 2021-11-01 16:27:16 +02:00
inputdevice.h Introduce base InputDevice class 2021-11-01 16:27:16 +02:00
inputmethod.cpp Ensure modifier change is forwarded after the key sending to input method. 2022-01-02 03:26:23 +00:00
inputmethod.h Ensure modifier change is forwarded after the key sending to input method. 2022-01-02 03:26:23 +00:00
inputpanelv1client.cpp Change InputMethod::show() and InputMethod::hide() to not change active state. 2021-12-23 03:00:52 +00:00
inputpanelv1client.h inputmethod: Use touch events to decide if the panel is shown not the state 2021-10-15 15:41:35 +00:00
inputpanelv1integration.cpp Run clazy with qt-keywords fixit 2021-06-08 10:49:42 +03:00
inputpanelv1integration.h
internal_client.cpp Lock clientStepUserMovedResized to move resize geometry changes 2022-01-04 07:36:42 +00:00
internal_client.h Move createDecoration() and destroyDecoration() from AbstractClient to InternalClient 2021-12-15 12:47:27 +00:00
item.cpp Move all dirty region scene repaint scheduling to Scene 2021-11-11 11:33:04 +02:00
item.h Port screenId based rendering methods to AbstractOutput 2021-08-25 13:53:33 +02:00
keyboard_input.cpp Fix tests by checking if InputMethod::self() is null. 2022-01-03 18:34:53 -08:00
keyboard_input.h Introduce base InputDevice class 2021-11-01 16:27:16 +02:00
keyboard_layout.cpp Set component display name for touchpad and keyboard shortcuts 2021-07-26 10:37:48 +02:00
keyboard_layout.h
keyboard_layout_switching.cpp Run clazy with qt-keywords fixit 2021-06-08 10:49:42 +03:00
keyboard_layout_switching.h
keyboard_repeat.cpp Run clazy with qt-keywords fixit 2021-06-08 10:49:42 +03:00
keyboard_repeat.h
killwindow.cpp
killwindow.h
kwin.kcfg Drop geometry tip 2022-01-04 07:36:42 +00:00
kwin.notifyrc SVN_SILENT made messages (.desktop file) - always resolve ours 2021-12-31 01:42:54 +00:00
kwineglutils_p.h platforms/drm: some improvements for logging 2021-06-21 17:57:36 +02:00
layers.cpp Remove boolean trap in AbstractClient::isShown() 2021-11-24 08:11:35 +00:00
layershellv1client.cpp Rename LayerShellV1Client::output() to desiredOutput() 2021-08-25 13:58:49 +00:00
layershellv1client.h Rename LayerShellV1Client::output() to desiredOutput() 2021-08-25 13:58:49 +00:00
layershellv1integration.cpp Move active output tracking to workspace 2021-08-30 13:28:23 +00:00
layershellv1integration.h
linux_dmabuf.cpp backends/drm: deep color support 2021-12-25 18:32:58 +00:00
linux_dmabuf.h backends/drm: deep color support 2021-12-25 18:32:58 +00:00
main.cpp Introduce base InputDevice class 2021-11-01 16:27:16 +02:00
main.h Introduce base InputDevice class 2021-11-01 16:27:16 +02:00
main_wayland.cpp Allow starting kwin_wayland as root 2022-01-04 16:01:57 +01:00
main_wayland.h wayland: Simplify startup sequence 2021-08-25 18:54:19 +00:00
main_x11.cpp Utilize KCoreAddons infrastructure for static plugins 2021-11-24 10:48:51 +00:00
main_x11.h
Messages.sh Move scenes to the src directory 2021-11-08 10:22:07 +00:00
modifier_only_shortcuts.cpp fix Meta key randomly stops opening Plasma launcher menu 2021-07-06 10:43:52 +00:00
modifier_only_shortcuts.h fix Meta key randomly stops opening Plasma launcher menu 2021-07-06 10:43:52 +00:00
moving_client_x11_filter.cpp
moving_client_x11_filter.h
netinfo.cpp
netinfo.h
onscreennotification.cpp Run clazy with qt-keywords fixit 2021-06-08 10:49:42 +03:00
onscreennotification.h
options.cpp Drop geometry tip 2022-01-04 07:36:42 +00:00
options.h Drop geometry tip 2022-01-04 07:36:42 +00:00
org.kde.kappmenu.xml
org.kde.kwin.Compositing.xml
org.kde.kwin.Effects.xml
org.kde.KWin.Plugins.xml
org.kde.KWin.Session.xml
org.kde.KWin.VirtualDesktopManager.xml
org.kde.KWin.xml
osd.cpp
osd.h
outline.cpp Run clazy with qt-keywords fixit 2021-06-08 10:49:42 +03:00
outline.h
overlaywindow.cpp
overlaywindow.h
placement.cpp Make AbstractClient::titlebarPosition() return Qt::Edge 2022-01-04 15:57:42 +00:00
placement.h
platform.cpp make software cursors work per output 2021-12-28 18:42:29 +00:00
platform.h make software cursors work per output 2021-12-28 18:42:29 +00:00
plugin.cpp
plugin.h plugins: Port away from deprecated version checks 2021-06-07 15:01:19 +00:00
pluginmanager.cpp Fully port away from KPluginLoader 2021-10-19 21:39:51 +02:00
pluginmanager.h
pointer_input.cpp make software cursors work per output 2021-12-28 18:42:29 +00:00
pointer_input.h Drop warpXcbOnSurfaceLeft() 2021-12-07 09:22:41 +00:00
popup_input_filter.cpp fix: touch down to close popup window. 2021-12-03 07:09:46 +00:00
popup_input_filter.h fix: touch down to close popup window. 2021-12-03 07:09:46 +00:00
renderbackend.cpp Move graphics reset handling to RenderBackend 2022-01-02 22:29:36 +02:00
renderbackend.h Move graphics reset handling to RenderBackend 2022-01-02 22:29:36 +02:00
renderjournal.cpp
renderjournal.h
renderloop.cpp RenderLoop: restrict repaint scheduling with fullscreen windows 2021-11-07 00:41:38 +01:00
renderloop.h RenderLoop: restrict repaint scheduling with fullscreen windows 2021-11-07 00:41:38 +01:00
renderloop_p.h RenderLoop: restrict repaint scheduling with fullscreen windows 2021-11-07 00:41:38 +01:00
rootinfo_filter.cpp
rootinfo_filter.h
rulebooksettings.cpp rulebooksettings: Add accesors to the rules settings list 2021-06-07 21:03:29 +02:00
rulebooksettings.h rulebooksettings: Add accesors to the rules settings list 2021-06-07 21:03:29 +02:00
rulebooksettingsbase.kcfg rulebooksettings: Add accesors to the rules settings list 2021-06-07 21:03:29 +02:00
rulebooksettingsbase.kcfgc
rules.cpp port everything away from Q_FOREACH 2021-11-08 14:19:05 +00:00
rules.h kwinrules: Use a list of desktop UUIDs to set and store the rules setting 2021-09-02 22:11:46 +02:00
rulesettings.kcfg Use "Centered" window placement by default 2021-11-09 22:16:44 +00:00
rulesettings.kcfgc
scene.cpp make software cursors work per output 2021-12-28 18:42:29 +00:00
scene.h Move graphics reset handling to RenderBackend 2022-01-02 22:29:36 +02:00
screenedge.cpp Remove some no longer relevant KWIN_UNIT_TEST ifdefs 2021-12-08 16:29:55 +00:00
screenedge.h
screenlockerwatcher.cpp Run clazy with qt-keywords fixit 2021-06-08 10:49:42 +03:00
screenlockerwatcher.h
screens.cpp autotests: Drop effect loader tests 2021-12-08 16:29:55 +00:00
screens.h Drop Screens::displaySize() 2021-11-26 10:32:55 +02:00
service_utils.cpp
service_utils.h
session.cpp wayland: Remove direct session 2021-05-24 06:23:00 +00:00
session.h backends/drm: Improve PauseDevice/ResumeDevice signal handling 2021-11-25 15:06:49 +00:00
session_consolekit.cpp backends/drm: Improve PauseDevice/ResumeDevice signal handling 2021-11-25 15:06:49 +00:00
session_consolekit.h backends/drm: Improve PauseDevice/ResumeDevice signal handling 2021-11-25 15:06:49 +00:00
session_logind.cpp backends/drm: Improve PauseDevice/ResumeDevice signal handling 2021-11-25 15:06:49 +00:00
session_logind.h backends/drm: Improve PauseDevice/ResumeDevice signal handling 2021-11-25 15:06:49 +00:00
session_noop.cpp
session_noop.h
settings.kcfgc
shadow.cpp Move ownership of Shadow to Toplevel 2021-09-06 10:42:39 +00:00
shadow.h Move ownership of Shadow to Toplevel 2021-09-06 10:42:39 +00:00
shadowitem.cpp Move ownership of Shadow to Toplevel 2021-09-06 10:42:39 +00:00
shadowitem.h Move ownership of Shadow to Toplevel 2021-09-06 10:42:39 +00:00
shortcutdialog.ui
sm.cpp port everything away from Q_FOREACH 2021-11-08 14:19:05 +00:00
sm.h
subsurfacemonitor.cpp wayland: Switch to SurfaceInterface::{below,above} 2021-07-08 06:55:38 +00:00
subsurfacemonitor.h
surfaceitem.cpp Rename PlatformSurfaceTexture to SurfaceTexture 2021-10-21 10:21:56 +03:00
surfaceitem.h Rename PlatformSurfaceTexture to SurfaceTexture 2021-10-21 10:21:56 +03:00
surfaceitem_internal.cpp Drop Toplevel::bufferScale() 2021-11-16 09:38:51 +02:00
surfaceitem_internal.h Drop Toplevel::bufferScale() 2021-11-16 09:38:51 +02:00
surfaceitem_wayland.cpp Rename PlatformSurfaceTexture to SurfaceTexture 2021-10-21 10:21:56 +03:00
surfaceitem_wayland.h Remove scene window traces in scene items 2021-08-12 17:52:24 +00:00
surfaceitem_x11.cpp Rename PlatformSurfaceTexture to SurfaceTexture 2021-10-21 10:21:56 +03:00
surfaceitem_x11.h Remove scene window traces in scene items 2021-08-12 17:52:24 +00:00
syncalarmx11filter.cpp
syncalarmx11filter.h
tablet_input.cpp Unify focus abstractions for internal and wayland windows 2021-12-01 10:23:55 +02:00
tablet_input.h Unify focus abstractions for internal and wayland windows 2021-12-01 10:23:55 +02:00
tabletmodemanager.cpp Introduce base InputDevice class 2021-11-01 16:27:16 +02:00
tabletmodemanager.h
toplevel.cpp Kill Toplevel::screenScale() 2021-11-29 13:14:01 +00:00
toplevel.h Move AbstractClient::isInternal() to Toplevel 2021-12-01 10:23:55 +02:00
touch_input.cpp Ignore decoration when updating focused window in PointerInput and TouchInput 2021-12-17 07:19:41 +00:00
touch_input.h Unify focus abstractions for internal and wayland windows 2021-12-01 10:23:55 +02:00
udev.cpp
udev.h
unmanaged.cpp Store AbstractOutput in Toplevel 2021-08-29 21:55:07 +00:00
unmanaged.h x11: Drop support for _NET_WM_FRAME_OVERLAP 2021-08-12 11:44:40 +00:00
useractions.cpp Use const'ref here 2022-01-04 14:00:41 +01:00
useractions.h Port AbstractClient::sendToScreen() to AbstractOutput 2021-08-29 21:55:07 +00:00
utils.cpp Support text-input-v3 cursor position and position the overlay mode input panel within the screen. 2021-12-16 03:29:00 +00:00
utils.h Support text-input-v3 cursor position and position the overlay mode input panel within the screen. 2021-12-16 03:29:00 +00:00
virtualdesktops.cpp scripting: Introduce VirtualDesktopModel 2021-10-21 06:27:03 +00:00
virtualdesktops.h scripting: Introduce VirtualDesktopModel 2021-10-21 06:27:03 +00:00
virtualdesktopsdbustypes.cpp
virtualdesktopsdbustypes.h
virtualkeyboard_dbus.cpp inputmethod: Expose VirtualKeyboard.willShowOnActive on dbus 2021-12-28 23:53:08 +00:00
virtualkeyboard_dbus.h inputmethod: Expose VirtualKeyboard.willShowOnActive on dbus 2021-12-28 23:53:08 +00:00
was_user_interaction_x11_filter.cpp
was_user_interaction_x11_filter.h
wayland_server.cpp Use QPointer to monitor input method server connection. 2021-12-16 03:29:00 +00:00
wayland_server.h Use QPointer to monitor input method server connection. 2021-12-16 03:29:00 +00:00
waylandclient.cpp Remove boolean trap in AbstractClient::isShown() 2021-11-24 08:11:35 +00:00
waylandclient.h Remove boolean trap in AbstractClient::isShown() 2021-11-24 08:11:35 +00:00
waylandoutput.cpp autotests: Fix testScreens 2021-11-30 19:10:54 +02:00
waylandoutput.h
waylandoutputconfig.cpp platforms/drm: more dynamic crtc assignment 2021-11-09 22:15:31 +01:00
waylandoutputconfig.h platforms/drm: more dynamic crtc assignment 2021-11-09 22:15:31 +01:00
waylandoutputdevicev2.cpp Implement Primary Displays on the wayland session 2021-11-09 16:55:39 +00:00
waylandoutputdevicev2.h platforms/drm: support Broadcast_RGB setting 2021-09-02 13:53:02 +02:00
waylandshellintegration.cpp
waylandshellintegration.h
window_property_notify_x11_filter.cpp Run clazy with qt-keywords fixit 2021-06-08 10:49:42 +03:00
window_property_notify_x11_filter.h
windowitem.cpp Drop Toplevel::bufferScale() 2021-11-16 09:38:51 +02:00
windowitem.h Drop Toplevel::bufferScale() 2021-11-16 09:38:51 +02:00
workspace.cpp Make AbstractClient::titlebarPosition() return Qt::Edge 2022-01-04 15:57:42 +00:00
workspace.h Drop Workspace::m_compositor 2021-11-11 11:33:09 +02:00
x11client.cpp Drop resize effect 2022-01-05 19:00:22 +02:00
x11client.h wayland: Avoid repetitive move() and resize() calls during interactive move/resize 2022-01-04 07:36:42 +00:00
x11eventfilter.cpp
x11eventfilter.h
x11syncmanager.cpp Introduce explicit base render backend type 2021-11-11 08:55:29 +00:00
x11syncmanager.h scenes/opengl: Move out X11 explicit sync 2021-06-14 13:14:54 +00:00
xcbutils.cpp
xcbutils.h
xcursortheme.cpp
xcursortheme.h
xdgactivationv1.cpp Decouple activation feedback from window management 2021-08-25 09:35:57 +00:00
xdgactivationv1.h plasma-window-management: Support new activation concepts 2021-08-20 07:05:34 +00:00
xdgshellclient.cpp Avoid sending a configure event when starting interactive move 2022-01-04 18:28:54 +02:00
xdgshellclient.h Rename XdgToplevelClient::m_requestedStates to m_nextStates 2022-01-04 18:28:54 +02:00
xdgshellintegration.cpp Run clazy with qt-keywords fixit 2021-06-08 10:49:42 +03:00
xdgshellintegration.h
xkb.cpp Forward xkb modifier changes to input method. 2021-12-16 03:29:00 +00:00
xkb.h Forward xkb modifier changes to input method. 2021-12-16 03:29:00 +00:00
xwaylandclient.cpp
xwaylandclient.h