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

commit04c97b5733ce610ceaf939d79d70ef4e81e5f0f4
parent99840ff472
authorIsaac Freund <[email protected]>
date2024-05-18 14:40
PointerConstraint: remove overly tight assert

This assert is incorrect if Xwayland is enabled and an Override Redirect
window steals the keyboard focus from the parent surface.

It also seems likely to be hit if a Wayland client attempts to use a
pointer constraint on a subsurface. I don't think a pointer constraint
on a subsurface is likely to work entirely correctly and I don't know of
any Wayland clients that try such a thing. We can't let them crash river
by trying though.

 river/PointerConstraint.zig | 2 --
 1 file changed, 2 deletions(-)

diff --git a/river/PointerConstraint.zig b/river/PointerConstraint.zig
index e833ee8..654debe 100644
--- a/river/PointerConstraint.zig
+++ b/river/PointerConstraint.zig
@@ -105,8 +105,6 @@ pub fn maybeActivate(constraint: *PointerConstraint) void {
 pub fn updateState(constraint: *PointerConstraint) void {
     const seat: *Seat = @ptrFromInt(constraint.wlr_constraint.seat.data);
 
-    assert(seat.wlr_seat.keyboard_state.focused_surface == constraint.wlr_constraint.surface);
-
     constraint.maybeActivate();
 
     if (constraint.state != .active) return;