Wayland compositor (wlroots)
git clone https://git.lucas.co/cce-compositor.git
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,