From 8e0f27f690ab57de2b593ac0c1b211319e1d8f3f Mon Sep 17 00:00:00 2001 From: galister <22305755+galister@users.noreply.github.com> Date: Sun, 2 Aug 2026 16:54:21 +0900 Subject: [PATCH] fix auto_movement on Floating --- wayvr/src/windowing/window.rs | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/wayvr/src/windowing/window.rs b/wayvr/src/windowing/window.rs index 34a15196..09b7f9e7 100644 --- a/wayvr/src/windowing/window.rs +++ b/wayvr/src/windowing/window.rs @@ -155,17 +155,16 @@ impl OverlayWindowConfig { .unwrap_or(self.default_state.transform); let scale = scalar_scale(&cur_transform); - let (parent_transform, lerp) = match state.positioning { - Positioning::FollowHead { lerp } => (app.input_state.hmd, lerp), - Positioning::FollowHand { hand, lerp } => { - (app.input_state.pointers[hand as usize].pose, lerp) - } - Positioning::Anchored => (app.anchor, 1.0), - Positioning::Static | Positioning::Floating => (Affine3A::IDENTITY, 1.0), // STAGE space + let (target_transform, lerp) = match state.positioning { + Positioning::FollowHead { lerp } => (app.input_state.hmd * cur_transform, lerp), + Positioning::FollowHand { hand, lerp } => ( + app.input_state.pointers[hand as usize].pose * cur_transform, + lerp, + ), + Positioning::Anchored => (app.anchor * cur_transform, 1.0), + Positioning::Static | Positioning::Floating => (state.transform, 1.0), // STAGE space }; - let target_transform = parent_transform * cur_transform; - state.transform = match lerp { 1.0 => target_transform, lerp => {