diff options
| author | Ivan Molodetskikh <yalterz@gmail.com> | 2024-03-17 07:48:34 +0400 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2024-03-18 19:31:11 +0400 |
| commit | a011b385d87db2eb8ecbff2ca2bfb7862e8267df (patch) | |
| tree | 66d7c4dadcd199840491586d56f93340c40c7101 /src | |
| parent | 2984722f80d794af93c02fcadb157d0f8f1cc8a5 (diff) | |
| download | niri-a011b385d87db2eb8ecbff2ca2bfb7862e8267df.tar.gz niri-a011b385d87db2eb8ecbff2ca2bfb7862e8267df.tar.bz2 niri-a011b385d87db2eb8ecbff2ca2bfb7862e8267df.zip | |
Warp mouse to focus on new window appearing
Diffstat (limited to 'src')
| -rw-r--r-- | src/handlers/compositor.rs | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/handlers/compositor.rs b/src/handlers/compositor.rs index dac257d2..52c5a193 100644 --- a/src/handlers/compositor.rs +++ b/src/handlers/compositor.rs @@ -143,6 +143,7 @@ impl CompositorHandler for State { }) .map(|(window, _)| window.clone()); + let window = window.clone(); let win = window.clone(); let output = if let Some(p) = parent { @@ -161,6 +162,12 @@ impl CompositorHandler for State { if let Some(output) = output.cloned() { self.niri.layout.start_open_animation_for_window(&window); + + let new_active_window = self.niri.layout.active_window().map(|(w, _)| w); + if new_active_window == Some(&window) { + self.maybe_warp_cursor_to_focus(); + } + self.niri.queue_redraw(output); } return; |
