From 5a53b742655817b79b2a22f4c192e18be37bc816 Mon Sep 17 00:00:00 2001 From: Julian Orth Date: Wed, 10 Jul 2024 20:23:30 +0200 Subject: [PATCH] sub-surface: update sub-surface positions if parent does not move --- src/ifs/wl_surface/wl_subsurface.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/ifs/wl_surface/wl_subsurface.rs b/src/ifs/wl_surface/wl_subsurface.rs index 377226f0..2e7d37c6 100644 --- a/src/ifs/wl_surface/wl_subsurface.rs +++ b/src/ifs/wl_surface/wl_subsurface.rs @@ -138,6 +138,9 @@ impl WlSubsurface { if let Some((x, y)) = pending.position.take() { self.position .set(self.surface.buffer_abs_pos.get().at_point(x, y)); + let (parent_x, parent_y) = self.parent.buffer_abs_pos.get().position(); + self.surface + .set_absolute_position(parent_x + x, parent_y + y); self.parent.need_extents_update.set(true); } Ok(()) @@ -172,6 +175,8 @@ impl WlSubsurface { self.surface.set_toplevel(self.parent.toplevel.get()); self.surface.ext.set(self.clone()); update_children_attach(self)?; + let (x, y) = self.parent.buffer_abs_pos.get().position(); + self.surface.set_absolute_position(x, y); Ok(()) }