From e6cdbdcac4b55d279e4fd1e09af8e87d0bb6898d Mon Sep 17 00:00:00 2001 From: Julian Orth Date: Thu, 17 Jul 2025 15:57:01 +0200 Subject: [PATCH] xdg-shell: fetch existing extents when surface is created The surface might alredy have non-0 extents due to the use of wp_viewporter. --- src/ifs/wl_surface/xdg_surface.rs | 2 +- src/ifs/wl_surface/xdg_surface/xdg_toplevel.rs | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/ifs/wl_surface/xdg_surface.rs b/src/ifs/wl_surface/xdg_surface.rs index 91894af2..46912531 100644 --- a/src/ifs/wl_surface/xdg_surface.rs +++ b/src/ifs/wl_surface/xdg_surface.rs @@ -203,7 +203,7 @@ impl XdgSurface { requested_serial: NumCell::new(1), acked_serial: Cell::new(None), geometry: Cell::new(None), - extents: Cell::new(Default::default()), + extents: Cell::new(surface.extents.get()), absolute_desired_extents: Cell::new(Default::default()), ext: Default::default(), popup_display_stack: CloneCell::new(surface.client.state.root.stacked.clone()), diff --git a/src/ifs/wl_surface/xdg_surface/xdg_toplevel.rs b/src/ifs/wl_surface/xdg_surface/xdg_toplevel.rs index 07af5234..dd37baa5 100644 --- a/src/ifs/wl_surface/xdg_surface/xdg_toplevel.rs +++ b/src/ifs/wl_surface/xdg_surface/xdg_toplevel.rs @@ -157,6 +157,7 @@ impl XdgToplevel { toplevel_data .content_type .set(surface.surface.content_type.get()); + toplevel_data.pos.set(surface.extents.get()); Self { id, state: state.clone(),