diff --git a/river/View.zig b/river/View.zig index 9a860b7..249cf0e 100644 --- a/river/View.zig +++ b/river/View.zig @@ -297,17 +297,22 @@ pub fn updateCurrent(view: *Self) void { } xdg_toplevel.configure_state = .idle; }, - .xwayland_view => |xwayland_view| { - if (view.inflight.resizing) { - view.resizeUpdatePosition( - xwayland_view.xwayland_surface.width, - xwayland_view.xwayland_surface.height, - ); + // TODO(zig): this capture does not need to be mutable and the if (build_options.xwayland) + // is unnecessary. However, zig 0.10.0 is buggy and these work around a bug. They are both + // fixed in zig 0.10.1 and newer but we currently rely on 0.10.0 for FreeBSD CI. + .xwayland_view => |*xwayland_view| { + if (build_options.xwayland) { + if (view.inflight.resizing) { + view.resizeUpdatePosition( + xwayland_view.xwayland_surface.width, + xwayland_view.xwayland_surface.height, + ); + } + view.inflight.box.width = xwayland_view.xwayland_surface.width; + view.inflight.box.height = xwayland_view.xwayland_surface.height; + view.pending.box.width = xwayland_view.xwayland_surface.width; + view.pending.box.height = xwayland_view.xwayland_surface.height; } - view.inflight.box.width = xwayland_view.xwayland_surface.width; - view.inflight.box.height = xwayland_view.xwayland_surface.height; - view.pending.box.width = xwayland_view.xwayland_surface.width; - view.pending.box.height = xwayland_view.xwayland_surface.height; }, .none => {}, }