kwin/src/scene
Vlad Zahorodnii 017906541b Refactor compositing teardown in X11Window and Unmanaged
Currently, X11Window and Unmanaged call finishCompositing(), which tries
to destroy the window item and other associated compositing data.

Usually, it has no any effect on the window item and the effect window
because they are moved to the Deleted. However, it has some effect on
the XDamage handle.

If the X11 window is unmapped, it will destroy the XDamage handle. If
the X11 window is destroyed, it will do nothing. Why does it behave like
that? Because that's how the XDamage spec is written.

This change removes the call to finishCompositing() and refactors how
the XDamage is handled so Window::finishCompositing() is more generic.

If the X11 window is destroyed, SurfaceItemX11::forgetDamage() will be
called and SurfaceItemX11::~SurfaceItemX11() won't attempt to destroy
the damage handle.

If the X11 window is unmapped, SurfaceItemX11::destroyDamage() will be
called and destroyDamage() in SurfaceItemX11::~SurfaceItemX11() will
noop.

If compositing has been restarted, destroyDamage() in
SurfaceItemX11::~SurfaceItemX11() will destroy the damage handle.
2023-03-22 19:15:19 +00:00
..
cursoritem.cpp scene: Avoid creating SurfaceItem for Xwayland's cursor surfaces 2023-01-04 11:10:32 +00:00
cursoritem.h scene: Introduce cursor item and scene 2023-01-03 09:33:17 +00:00
cursorscene.cpp libkwineffects: Forward declare RenderTarget and RenderViewport in kwineffects.h 2023-03-10 07:19:33 +00:00
cursorscene.h effects: introduce RenderTarget and RenderViewport 2023-03-09 13:22:53 +00:00
decorationitem.cpp Extend lifetime of decoration to lifetime of Deleted 2023-03-22 11:25:58 +00:00
decorationitem.h Tidy Window::windowClosed() signal 2023-03-14 07:15:56 +00:00
dndiconitem.cpp scene: Split base Scene class from WorkspaceScene class 2022-12-21 12:20:23 +02:00
dndiconitem.h scene: Split base Scene class from WorkspaceScene class 2022-12-21 12:20:23 +02:00
imageitem.cpp scene: Introduce ImageItem 2023-01-03 09:33:17 +00:00
imageitem.h scene: Introduce ImageItem 2023-01-03 09:33:17 +00:00
item.cpp scene: Split base Scene class from WorkspaceScene class 2022-12-21 12:20:23 +02:00
item.h Add missing includes for KF6 2023-01-28 09:16:14 +00:00
itemrenderer.cpp effects: introduce RenderTarget and RenderViewport 2023-03-09 13:22:53 +00:00
itemrenderer.h effects: introduce RenderTarget and RenderViewport 2023-03-09 13:22:53 +00:00
itemrenderer_opengl.cpp libkwineffects: Forward declare RenderTarget and RenderViewport in kwineffects.h 2023-03-10 07:19:33 +00:00
itemrenderer_opengl.h effects: introduce RenderTarget and RenderViewport 2023-03-09 13:22:53 +00:00
itemrenderer_qpainter.cpp libkwineffects: Forward declare RenderTarget and RenderViewport in kwineffects.h 2023-03-10 07:19:33 +00:00
itemrenderer_qpainter.h effects: introduce RenderTarget and RenderViewport 2023-03-09 13:22:53 +00:00
scene.cpp scene: fix texture inversion with the drm backend 2023-03-09 13:22:53 +00:00
scene.h effects: introduce RenderTarget and RenderViewport 2023-03-09 13:22:53 +00:00
shadowitem.cpp Tidy Window::windowClosed() signal 2023-03-14 07:15:56 +00:00
shadowitem.h Tidy Window::windowClosed() signal 2023-03-14 07:15:56 +00:00
surfaceitem.cpp scene: Remove addDamage() in SurfaceItem::discardPixmap() 2023-01-03 11:55:36 +00:00
surfaceitem.h scene: ensure OpenGL texture is updated after direct scanout 2023-01-02 12:57:13 +01:00
surfaceitem_internal.cpp Tidy Window::windowClosed() signal 2023-03-14 07:15:56 +00:00
surfaceitem_internal.h Tidy Window::windowClosed() signal 2023-03-14 07:15:56 +00:00
surfaceitem_wayland.cpp Tidy Window::windowClosed() signal 2023-03-14 07:15:56 +00:00
surfaceitem_wayland.h Tidy Window::windowClosed() signal 2023-03-14 07:15:56 +00:00
surfaceitem_x11.cpp Refactor compositing teardown in X11Window and Unmanaged 2023-03-22 19:15:19 +00:00
surfaceitem_x11.h Refactor compositing teardown in X11Window and Unmanaged 2023-03-22 19:15:19 +00:00
windowitem.cpp Tidy Window::windowClosed() signal 2023-03-14 07:15:56 +00:00
windowitem.h Tidy Window::windowClosed() signal 2023-03-14 07:15:56 +00:00
workspacescene.cpp scene: Rework window elevation 2023-03-13 17:27:15 +00:00
workspacescene.h effects: remove ScreenPaintData 2023-03-09 13:22:53 +00:00
workspacescene_opengl.cpp adapt to kdecoration changes 2023-03-19 15:26:15 +00:00
workspacescene_opengl.h scene: Decouple scene bits from Shadow class 2023-02-22 10:07:41 +00:00
workspacescene_qpainter.cpp scene: Decouple scene bits from Shadow class 2023-02-22 10:07:41 +00:00
workspacescene_qpainter.h scene: Decouple scene bits from Shadow class 2023-02-22 10:07:41 +00:00