diff options
| author | Ivan Molodetskikh <yalterz@gmail.com> | 2025-01-23 11:50:43 +0300 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2025-01-23 12:07:32 +0300 |
| commit | 788c9c6c545c016687b024d28f2806055ddb9fc8 (patch) | |
| tree | 4a8d1d712139ce5fd3a0fcd580f578c973e407d6 /src/handlers | |
| parent | a10705fb200b452802a1ba7cd47679536e0ef849 (diff) | |
| download | niri-788c9c6c545c016687b024d28f2806055ddb9fc8.tar.gz niri-788c9c6c545c016687b024d28f2806055ddb9fc8.tar.bz2 niri-788c9c6c545c016687b024d28f2806055ddb9fc8.zip | |
Add find_root_shell_surface() that goes through popups
Diffstat (limited to 'src/handlers')
| -rw-r--r-- | src/handlers/mod.rs | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/src/handlers/mod.rs b/src/handlers/mod.rs index 9ffe5bab..8c1374d3 100644 --- a/src/handlers/mod.rs +++ b/src/handlers/mod.rs @@ -343,13 +343,12 @@ impl ClientDndGrabHandler for State { // example. On successful drop, additionally activate the target window. let mut activate_output = true; if let Some(target) = validated.then_some(target).flatten() { - if let Some(root) = self.niri.root_surface.get(&target) { - if let Some((mapped, _)) = self.niri.layout.find_window_and_output(root) { - let window = mapped.window.clone(); - self.niri.layout.activate_window(&window); - self.niri.layer_shell_on_demand_focus = None; - activate_output = false; - } + let root = self.niri.find_root_shell_surface(&target); + if let Some((mapped, _)) = self.niri.layout.find_window_and_output(&root) { + let window = mapped.window.clone(); + self.niri.layout.activate_window(&window); + self.niri.layer_shell_on_demand_focus = None; + activate_output = false; } } |
