diff --git a/src/ifs/wl_surface/xdg_surface.rs b/src/ifs/wl_surface/xdg_surface.rs index 62624b96..91894af2 100644 --- a/src/ifs/wl_surface/xdg_surface.rs +++ b/src/ifs/wl_surface/xdg_surface.rs @@ -490,6 +490,7 @@ impl XdgSurface { let stack = self.popup_display_stack.get(); for popup in self.popups.lock().values() { if let Some(dl) = &*popup.display_link.borrow() { + popup.popup.xdg.damage(); stack.add_last_existing(dl); } popup.popup.xdg.restack_popups(); diff --git a/src/tree/float.rs b/src/tree/float.rs index 60edbbfd..79c12ca3 100644 --- a/src/tree/float.rs +++ b/src/tree/float.rs @@ -519,6 +519,7 @@ impl FloatNode { fn restack(&self) { if let Some(dl) = &*self.display_link.borrow() { + self.state.damage(self.position.get()); self.state.root.stacked.add_last_existing(&dl); if let Some(tl) = self.child.get() { tl.tl_restack_popups();