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

commitdb73e392bf532b08b1649acf89f34e96b9f0da74
parentccf77f2077
authorIsaac Freund <[email protected]>
date2021-10-20 15:40
Xwayland: always send configure if requested

This seems to fix an issue with mouse input for steam if steam is not
started on an output at 0,0. X11 is pretty spooky.

 river/XwaylandView.zig | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/river/XwaylandView.zig b/river/XwaylandView.zig
index 03b8787..aac9af6 100644
--- a/river/XwaylandView.zig
+++ b/river/XwaylandView.zig
@@ -226,13 +226,18 @@ fn handleRequestConfigure(
 ) void {
     const self = @fieldParentPtr(Self, "request_configure", listener);
 
-    // Allow xwayland views to set their own dimensions (but not position)
-    // if floating or unmapped
-    if (self.view.surface == null or self.view.pending.float) {
+    // If unmapped, let the client do whatever it wants
+    if (self.view.surface == null) {
+        self.xwayland_surface.configure(event.x, event.y, event.width, event.height);
+        return;
+    }
+
+    // Allow xwayland views to set their own dimensions (but not position) if floating
+    if (self.view.pending.float) {
         self.view.pending.box.width = event.width;
         self.view.pending.box.height = event.height;
-        self.configure();
     }
+    self.configure();
 }
 
 fn handleCommit(listener: *wl.Listener(*wlr.Surface), surface: *wlr.Surface) void {