layer shell backgrounds now render behind views

This commit is contained in:
Harrison DiAmbrosio 2025-12-05 21:29:28 -05:00
parent 7265fecfaf
commit a8e77be43b
2 changed files with 2 additions and 6 deletions

View file

@ -31,7 +31,6 @@ pub fn init(wlr_layer_surface: *wlr.LayerSurfaceV1) *LayerSurface {
.scene_layer_surface = undefined, .scene_layer_surface = undefined,
}; };
// try server.root.scene.tree.createSceneLayerSurfaceV1(wlr_layer_surface)
if(server.seat.focused_output) |output| { if(server.seat.focused_output) |output| {
self.scene_layer_surface = switch (wlr_layer_surface.current.layer) { self.scene_layer_surface = switch (wlr_layer_surface.current.layer) {
.background => try output.layers.background.createSceneLayerSurfaceV1(wlr_layer_surface), .background => try output.layers.background.createSceneLayerSurfaceV1(wlr_layer_surface),
@ -97,5 +96,5 @@ fn handleCommit(
layer_surface.output.wlr_output.effectiveResolution(&width, &height); layer_surface.output.wlr_output.effectiveResolution(&width, &height);
_ = layer_surface.wlr_layer_surface.configure(@intCast(width), @intCast(height)); _ = layer_surface.wlr_layer_surface.configure(@intCast(width), @intCast(height));
layer_surface.scene_layer_surface.tree.node.reparent(&layer_surface.output.scene_output.scene.tree); layer_surface.scene_layer_surface.tree.node.reparent(layer_surface.output.layers.background);
} }

View file

@ -65,13 +65,10 @@ pub fn initFromTopLevel(xdg_toplevel: *wlr.XdgToplevel) *View {
// Add new Toplevel to root of the tree // Add new Toplevel to root of the tree
// Later add to spesified output // Later add to spesified output
if(server.seat.focused_output) |output| { if(server.seat.focused_output) |output| {
std.log.debug("adding new view to content layer", .{});
self.scene_tree = try output.layers.content.createSceneXdgSurface(xdg_toplevel.base); self.scene_tree = try output.layers.content.createSceneXdgSurface(xdg_toplevel.base);
// _ = output;
// self.scene_tree = try server.root.scene.tree.createSceneXdgSurface(xdg_toplevel.base);
} else { } else {
self.scene_tree = try server.root.waiting_room.createSceneXdgSurface(xdg_toplevel.base);
std.log.err("No output to attach new view to", .{}); std.log.err("No output to attach new view to", .{});
self.scene_tree = try server.root.waiting_room.createSceneXdgSurface(xdg_toplevel.base);
} }
self.scene_tree.node.data = self; self.scene_tree.node.data = self;