diff options
Diffstat (limited to 'src/handlers')
| -rw-r--r-- | src/handlers/mod.rs | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/handlers/mod.rs b/src/handlers/mod.rs index 81ef9806..19742fcc 100644 --- a/src/handlers/mod.rs +++ b/src/handlers/mod.rs @@ -10,7 +10,7 @@ use std::thread; use smithay::backend::allocator::dmabuf::Dmabuf; use smithay::backend::renderer::ImportDma; -use smithay::desktop::PopupKind; +use smithay::desktop::{PopupKind, PopupManager}; use smithay::input::pointer::CursorImageStatus; use smithay::input::{Seat, SeatHandler, SeatState}; use smithay::output::Output; @@ -75,6 +75,11 @@ impl InputMethodHandler for State { warn!("error tracking ime popup {err:?}"); } } + fn dismiss_popup(&mut self, surface: PopupSurface) { + if let Some(parent) = surface.get_parent().map(|parent| parent.surface.clone()) { + let _ = PopupManager::dismiss_popup(&parent, &PopupKind::from(surface)); + } + } fn parent_geometry(&self, parent: &WlSurface) -> Rectangle<i32, Logical> { self.niri .layout |
