diff --git a/river/Cursor.zig b/river/Cursor.zig index 4557bad..f66d2be 100644 --- a/river/Cursor.zig +++ b/river/Cursor.zig @@ -317,7 +317,9 @@ fn handleButton(listener: *wl.Listener(*wlr.Pointer.event.Button), event: *wlr.P }, .xwayland_override_redirect => |override_redirect| { if (!build_options.xwayland) unreachable; - if (override_redirect.xwayland_surface.overrideRedirectWantsFocus()) { + if (override_redirect.xwayland_surface.overrideRedirectWantsFocus() and + override_redirect.xwayland_surface.icccmInputModel() != .none) + { self.seat.setFocusRaw(.{ .xwayland_override_redirect = override_redirect }); } }, diff --git a/river/XwaylandOverrideRedirect.zig b/river/XwaylandOverrideRedirect.zig index a6916ec..77cd74b 100644 --- a/river/XwaylandOverrideRedirect.zig +++ b/river/XwaylandOverrideRedirect.zig @@ -96,7 +96,9 @@ pub fn handleMap(listener: *wl.Listener(*wlr.XwaylandSurface), xwayland_surface: xwayland_surface.surface.?.events.commit.add(&self.commit); - if (self.xwayland_surface.overrideRedirectWantsFocus()) { + if (self.xwayland_surface.overrideRedirectWantsFocus() and + self.xwayland_surface.icccmInputModel() != .none) + { server.input_manager.defaultSeat().setFocusRaw(.{ .xwayland_override_redirect = self }); } }