aboutsummaryrefslogtreecommitdiff
path: root/src/niri.rs
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2023-10-15 18:58:36 +0400
committerIvan Molodetskikh <yalterz@gmail.com>2023-10-15 18:58:48 +0400
commit052ecdbe2ae5d13e32a6a11ed5d6f5cdf5531674 (patch)
treeed810c849e48db79f691c5d186c59076bf5489e2 /src/niri.rs
parentda59dfc5b4b6046475c36a377be661fbf3351bd0 (diff)
downloadniri-052ecdbe2ae5d13e32a6a11ed5d6f5cdf5531674.tar.gz
niri-052ecdbe2ae5d13e32a6a11ed5d6f5cdf5531674.tar.bz2
niri-052ecdbe2ae5d13e32a6a11ed5d6f5cdf5531674.zip
Check for ongoing animations earlier
Removes the inconsistency that when animating towards an empty pointer position, the focus change would not wait until the end of the animation.
Diffstat (limited to 'src/niri.rs')
-rw-r--r--src/niri.rs16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/niri.rs b/src/niri.rs
index 9f6e6da6..29bfc905 100644
--- a/src/niri.rs
+++ b/src/niri.rs
@@ -275,6 +275,14 @@ impl State {
let pointer = &self.niri.seat.get_pointer().unwrap();
let location = pointer.current_location();
+ // Don't refresh cursor focus during animations.
+ if let Some((output, _)) = self.niri.output_under(location) {
+ let monitor = self.niri.layout.monitor_for_output(output).unwrap();
+ if monitor.are_animations_ongoing() {
+ return;
+ }
+ }
+
let under = self.niri.surface_under_and_global_space(location);
// We're not changing the global cursor location here, so if the focus did not change, then
@@ -283,14 +291,6 @@ impl State {
return;
}
- // Don't refresh cursor focus during animations.
- if let Some(PointerFocus { output, .. }) = &under {
- let monitor = self.niri.layout.monitor_for_output(output).unwrap();
- if monitor.are_animations_ongoing() {
- return;
- }
- }
-
self.niri.pointer_focus = under.clone();
let under = under.map(|u| u.surface);