aboutsummaryrefslogtreecommitdiff
path: root/src/handlers
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2025-01-23 11:50:43 +0300
committerIvan Molodetskikh <yalterz@gmail.com>2025-01-23 12:07:32 +0300
commit788c9c6c545c016687b024d28f2806055ddb9fc8 (patch)
tree4a8d1d712139ce5fd3a0fcd580f578c973e407d6 /src/handlers
parenta10705fb200b452802a1ba7cd47679536e0ef849 (diff)
downloadniri-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.rs13
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;
}
}