diff --git a/src/layout/mod.rs b/src/layout/mod.rs index e93a255..ab7d7ec 100644 --- a/src/layout/mod.rs +++ b/src/layout/mod.rs @@ -954,7 +954,7 @@ impl Layout { .. } = &mut self.monitor_set else { - todo!() + return; }; for (monitor_idx, mon) in monitors.iter_mut().enumerate() { diff --git a/src/niri.rs b/src/niri.rs index 177f576..08331be 100644 --- a/src/niri.rs +++ b/src/niri.rs @@ -4144,18 +4144,22 @@ impl Niri { return; } - if self.seat.get_pointer().unwrap().is_grabbed() { + let pointer = &self.seat.get_pointer().unwrap(); + if pointer.is_grabbed() { return; } + // Recompute the current pointer focus because we don't update it during animations. + let current_focus = self.surface_under_and_global_space(pointer.current_location()); + if let Some(output) = &new_focus.output { - if self.pointer_focus.output.as_ref() != Some(output) { + if current_focus.output.as_ref() != Some(output) { self.layout.focus_output(output); } } if let Some(window) = &new_focus.window { - if self.pointer_focus.window.as_ref() != Some(window) { + if current_focus.window.as_ref() != Some(window) { self.layout.activate_window(window); } } diff --git a/wiki/Configuration:-Key-Bindings.md b/wiki/Configuration:-Key-Bindings.md index 231786b..51dcf85 100644 --- a/wiki/Configuration:-Key-Bindings.md +++ b/wiki/Configuration:-Key-Bindings.md @@ -50,7 +50,7 @@ For this reason, most of the default keys use the `Mod` modifier. > Here, look at `sym: Left` and `sym: Right`: these are the key names. > I was pressing the left and the right arrow in this example. -Binds will do key repeat by default (i.e. holding down a bind will make it trigger repeatedly). +Since: 0.1.7 Binds will repeat by default (i.e. holding down a bind will make it trigger repeatedly). You can disable that for specific binds with `repeat=false`: ```