git.lucas.co / cce-compositor
Wayland compositor (wlroots)
git clone https://git.lucas.co/cce-compositor.git

commit8542f8336a596477d6e47258e90f234f63488349
parentafcf8690ca
authorKirill Primak <[email protected]>
date2026-04-22 12:38
XdgToplevel: clip capture scene tree to geometry

Capturing shadows (which for tiled GTK apps may not even be rendered but
still take space) makes little sense.

 river/XdgToplevel.zig | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/river/XdgToplevel.zig b/river/XdgToplevel.zig
index 8288ec2..3eba31c 100644
--- a/river/XdgToplevel.zig
+++ b/river/XdgToplevel.zig
@@ -321,6 +321,9 @@ fn handleCommit(listener: *wl.Listener(*wlr.Surface), _: *wlr.Surface) void {
     const toplevel: *XdgToplevel = @fieldParentPtr("commit", listener);
     const window = toplevel.window;
 
+    // NB: the subsurface tree is never empty here
+    window.capture_scene.tree.node.subsurfaceTreeSetClip(&toplevel.wlr_toplevel.base.geometry);
+
     window.setDimensionsHint(.{
         .min_width = @intCast(toplevel.wlr_toplevel.current.min_width),
         .min_height = @intCast(toplevel.wlr_toplevel.current.min_height),