From 4a90b936b19eae63e379a2f957f3a9171db40a37 Mon Sep 17 00:00:00 2001 From: Nova Date: Wed, 24 Apr 2024 20:00:02 -0400 Subject: [PATCH] fix(wayland): stop unwrap of repositioned popup --- src/wayland/xdg_shell.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/wayland/xdg_shell.rs b/src/wayland/xdg_shell.rs index 506d711..2a3549b 100644 --- a/src/wayland/xdg_shell.rs +++ b/src/wayland/xdg_shell.rs @@ -374,13 +374,16 @@ impl XdgBackend { panel_item.new_child(uid, self.child_data(uid).unwrap()); } pub fn reposition_popup(&self, uid: &str, _popup: PopupSurface, positioner: PositionerState) { - self.popups.lock().get_mut(uid).unwrap().1 = positioner; - + let mut popups = self.popups.lock(); + let Some((_, old_positioner)) = popups.get_mut(uid) else { + return + }; let Some(panel_item) = self.panel_item() else { return; }; let geometry = positioner.get_geometry(); + *old_positioner = positioner; panel_item.reposition_child(uid, geometry.into()); } pub fn drop_popup(&self, uid: &str) {