From da394ec2c70a5b0879897911a528c5d0493a91c4 Mon Sep 17 00:00:00 2001 From: galister <22305755+galister@users.noreply.github.com> Date: Mon, 29 Jun 2026 13:10:19 +0900 Subject: [PATCH] when exiting edit mode, pin watch before saving state --- wayvr/src/windowing/manager.rs | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/wayvr/src/windowing/manager.rs b/wayvr/src/windowing/manager.rs index 8b859ff0..252760eb 100644 --- a/wayvr/src/windowing/manager.rs +++ b/wayvr/src/windowing/manager.rs @@ -585,6 +585,19 @@ impl OverlayWindowManager { pub fn set_edit_mode(&mut self, enabled: bool, app: &mut AppState) -> anyhow::Result<()> { let changed = enabled != self.edit_mode; self.edit_mode = enabled; + + if changed && let Some(watch) = self.mut_by_id(self.watch_id) { + watch + .config + .active_state + .iter_mut() + .for_each(|f| f.grabbable = enabled); + watch + .config + .backend + .notify(app, OverlayEventData::EditModeChanged(enabled))?; + } + if !enabled { for o in self.overlays.values_mut() { self.wrappers.unwrap_edit_mode(&mut o.config, app)?; @@ -597,17 +610,6 @@ impl OverlayWindowManager { } } } - if changed && let Some(watch) = self.mut_by_id(self.watch_id) { - watch - .config - .active_state - .iter_mut() - .for_each(|f| f.grabbable = enabled); - watch - .config - .backend - .notify(app, OverlayEventData::EditModeChanged(enabled))?; - } Ok(()) }