diff --git a/wlx-common/src/windowing.rs b/wlx-common/src/windowing.rs index 30ccee8..55ef9f5 100644 --- a/wlx-common/src/windowing.rs +++ b/wlx-common/src/windowing.rs @@ -43,6 +43,7 @@ impl Positioning { #[derive(Clone, Serialize, Deserialize)] #[serde(default)] pub struct OverlayWindowState { + #[serde(skip_serializing, skip_deserializing)] pub transform: Affine3A, pub alpha: f32, pub grabbable: bool, @@ -50,7 +51,6 @@ pub struct OverlayWindowState { pub positioning: Positioning, pub curvature: Option, pub additive: bool, - #[serde(skip_serializing, skip_deserializing)] pub saved_transform: Option, } diff --git a/wlx-overlay-s/src/windowing/manager.rs b/wlx-overlay-s/src/windowing/manager.rs index d784128..f8b69ff 100644 --- a/wlx-overlay-s/src/windowing/manager.rs +++ b/wlx-overlay-s/src/windowing/manager.rs @@ -294,9 +294,6 @@ impl OverlayWindowManager { let Some(mut state) = o.config.active_state.clone() else { break; }; - if let Some(transform) = state.saved_transform.as_ref() { - state.transform = *transform; - } app.session .config .global_set @@ -348,9 +345,7 @@ impl OverlayWindowManager { // global overlays for oid in &[self.watch_id] { if let Some(o) = self.mut_by_id(*oid) { - if let Some(mut state) = app.session.config.global_set.get(&*o.config.name).cloned() - { - state.saved_transform = Some(state.transform); + if let Some(state) = app.session.config.global_set.get(&*o.config.name).cloned() { o.config.active_state = Some(state); o.config.reset(app, false); log::debug!("global set: loaded state for {}", o.config.name); @@ -499,7 +494,6 @@ impl OverlayWindowManager { }; if self.current_set == Some(i) { let o = &mut self.overlays[oid]; - state.saved_transform = Some(state.transform); o.config.active_state = Some(state); o.config.reset(app, false); shown = true; @@ -540,12 +534,7 @@ impl OverlayWindowManager { let ws = &mut self.sets[*current_set]; ws.overlays.clear(); for (id, data) in self.overlays.iter_mut().filter(|(_, d)| !d.config.global) { - if let Some(mut state) = data.config.active_state.take() { - if let Some(transform) = state.saved_transform { - state.transform = transform; - } else { - state.transform = Affine3A::ZERO; - } + if let Some(state) = data.config.active_state.take() { log::debug!("{}: active_state → ws{}", data.config.name, current_set); ws.overlays.insert(id, state); } @@ -560,11 +549,7 @@ impl OverlayWindowManager { let ws = &mut self.sets[new_set]; for (id, data) in self.overlays.iter_mut().filter(|(_, d)| !d.config.global) { - if let Some(mut state) = ws.overlays.remove(id) { - if state.transform.x_axis.length_squared() > f32::EPSILON { - state.saved_transform = Some(state.transform); - } - state.transform = Affine3A::IDENTITY; + if let Some(state) = ws.overlays.remove(id) { log::debug!("{}: ws{} → active_state", data.config.name, new_set); data.config.active_state = Some(state); data.config.reset(app, false);