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

commitdbdbc7b0a821c08446f77232bc96066b1138b5a6
parent48bafa9b70
authorIsaac Freund <[email protected]>
date2022-12-24 17:38
build: handle wlroots built without xwayland support

 deps/zig-wlroots |  2 +-
 river/Cursor.zig | 15 ++++++++++-----
 river/Seat.zig   |  4 +++-
 3 files changed, 14 insertions(+), 7 deletions(-)

diff --git a/deps/zig-wlroots b/deps/zig-wlroots
index 199463a..b485332 160000
--- a/deps/zig-wlroots
+++ b/deps/zig-wlroots
@@ -1 +1 @@
-Subproject commit 199463a741061511561f6c139d49d4b00212d5bf
+Subproject commit b485332edb2bfc8db42d474a019e7df835a7d1be
diff --git a/river/Cursor.zig b/river/Cursor.zig
index 3f15f3b..1ee4d97 100644
--- a/river/Cursor.zig
+++ b/river/Cursor.zig
@@ -1125,11 +1125,16 @@ fn warp(self: *Self) void {
                 .width = view.current.box.width,
                 .height = view.current.box.height,
             },
-            .xwayland_override_redirect => |or_window| wlr.Box{
-                .x = or_window.xwayland_surface.x,
-                .y = or_window.xwayland_surface.y,
-                .width = or_window.xwayland_surface.width,
-                .height = or_window.xwayland_surface.height,
+            .xwayland_override_redirect => |or_window| blk: {
+                assert(build_options.xwayland);
+                // TODO(zig): remove this line when updating to the self hosted compiler.
+                if (!build_options.xwayland) return;
+                break :blk wlr.Box{
+                    .x = or_window.xwayland_surface.x,
+                    .y = or_window.xwayland_surface.y,
+                    .width = or_window.xwayland_surface.width,
+                    .height = or_window.xwayland_surface.height,
+                };
             },
         },
     };
diff --git a/river/Seat.zig b/river/Seat.zig
index d678e83..1ffddaa 100644
--- a/river/Seat.zig
+++ b/river/Seat.zig
@@ -49,7 +49,7 @@ const PointerConstraint = @import("PointerConstraint.zig");
 
 pub const FocusTarget = union(enum) {
     view: *View,
-    xwayland_override_redirect: *XwaylandOverrideRedirect,
+    xwayland_override_redirect: if (build_options.xwayland) *XwaylandOverrideRedirect else void,
     layer: *LayerSurface,
     lock_surface: *LockSurface,
     none: void,
@@ -221,6 +221,8 @@ pub fn setFocusRaw(self: *Self, new_focus: FocusTarget) void {
         .view => |target_view| target_view.surface.?,
         .xwayland_override_redirect => |target_override_redirect| blk: {
             assert(build_options.xwayland);
+            // TODO(zig): remove this line when updating to the self hosted compiler.
+            if (!build_options.xwayland) return;
             break :blk target_override_redirect.xwayland_surface.surface;
         },
         .layer => |target_layer| target_layer.wlr_layer_surface.surface,