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

commitc50243573d6d26264d965e51a2e85b06f7a1978f
parentc9f87d4336
authorZakariyya Von Forslun <[email protected]>
date2022-05-30 01:01
Xwayland: add handling of override redirect listeners

Adding the set_override_redirect listener on creation and removing it
on destruction was missed when implementing override redirect state
change handling.

 river/XwaylandUnmanaged.zig | 2 ++
 river/XwaylandView.zig      | 2 ++
 2 files changed, 4 insertions(+)

diff --git a/river/XwaylandUnmanaged.zig b/river/XwaylandUnmanaged.zig
index f490779..e1b1d3a 100644
--- a/river/XwaylandUnmanaged.zig
+++ b/river/XwaylandUnmanaged.zig
@@ -60,6 +60,7 @@ pub fn create(xwayland_surface: *wlr.XwaylandSurface) error{OutOfMemory}!*Self {
     xwayland_surface.events.destroy.add(&self.destroy);
     xwayland_surface.events.map.add(&self.map);
     xwayland_surface.events.unmap.add(&self.unmap);
+    xwayland_surface.events.set_override_redirect.add(&self.set_override_redirect);
 
     return self;
 }
@@ -80,6 +81,7 @@ fn handleDestroy(listener: *wl.Listener(*wlr.XwaylandSurface), _: *wlr.XwaylandS
     self.destroy.link.remove();
     self.map.link.remove();
     self.unmap.link.remove();
+    self.set_override_redirect.link.remove();
 
     // Deallocate the node
     const node = @fieldParentPtr(std.TailQueue(Self).Node, "data", self);
diff --git a/river/XwaylandView.zig b/river/XwaylandView.zig
index b7434c8..ac28f79 100644
--- a/river/XwaylandView.zig
+++ b/river/XwaylandView.zig
@@ -83,6 +83,7 @@ pub fn create(output: *Output, xwayland_surface: *wlr.XwaylandSurface) error{Out
     xwayland_surface.events.map.add(&self.map);
     xwayland_surface.events.unmap.add(&self.unmap);
     xwayland_surface.events.request_configure.add(&self.request_configure);
+    xwayland_surface.events.set_override_redirect.add(&self.set_override_redirect);
 
     return self;
 }
@@ -188,6 +189,7 @@ fn handleDestroy(listener: *wl.Listener(*wlr.XwaylandSurface), _: *wlr.XwaylandS
     self.map.link.remove();
     self.unmap.link.remove();
     self.request_configure.link.remove();
+    self.set_override_redirect.link.remove();
 
     self.view.destroy();
 }