diff --git a/wayvr/src/assets/gui/edit.xml b/wayvr/src/assets/gui/edit.xml index c21a45bb..7ad87cc8 100644 --- a/wayvr/src/assets/gui/edit.xml +++ b/wayvr/src/assets/gui/edit.xml @@ -72,6 +72,9 @@
+
+ +
diff --git a/wayvr/src/assets/lang/en.json b/wayvr/src/assets/lang/en.json index 0520c0bf..ea88d597 100644 --- a/wayvr/src/assets/lang/en.json +++ b/wayvr/src/assets/lang/en.json @@ -44,6 +44,7 @@ "POS_HMD": "Follow the HMD.", "POS_STATIC": "Static: Not part of any set, no recenter.", "POSITIONING": "Positioning", + "GLOBAL": "Always visible", "RESIZE_PRESS_AND_DRAG": "Resize (press & drag)", "STEREO_3D_MODE": { "SPLIT_BOTTOM_TOP": "BOTTOM→TOP", diff --git a/wayvr/src/overlays/edit/mod.rs b/wayvr/src/overlays/edit/mod.rs index 609b9915..e7a43e4c 100644 --- a/wayvr/src/overlays/edit/mod.rs +++ b/wayvr/src/overlays/edit/mod.rs @@ -431,6 +431,7 @@ fn make_edit_panel(app: &mut AppState) -> anyhow::Result { set_up_checkbox(&mut panel, "additive_box", cb_assign_additive)?; set_up_checkbox(&mut panel, "align_box", cb_assign_align)?; + set_up_checkbox(&mut panel, "global_box", cb_assign_global)?; set_up_checkbox( &mut panel, "stereo_full_frame_box", @@ -487,6 +488,11 @@ fn reset_panel( .fetch_component_as::("align_box")?; c.set_checked(&mut common, state.positioning.get_align().unwrap_or(false)); + let c = panel + .parser_state + .fetch_component_as::("global_box")?; + c.set_checked(&mut common, owc.global); + panel .state .pos @@ -576,6 +582,10 @@ const fn cb_assign_align(_app: &mut AppState, owc: &mut OverlayWindowConfig, ali active_state.positioning = active_state.positioning.with_align(align); } +const fn cb_assign_global(_app: &mut AppState, owc: &mut OverlayWindowConfig, global: bool) { + owc.global = global; +} + fn cb_assign_stereo_full_frame( _app: &mut AppState, owc: &mut OverlayWindowConfig, diff --git a/wayvr/src/overlays/edit/pos.rs b/wayvr/src/overlays/edit/pos.rs index 195df35e..71ca932c 100644 --- a/wayvr/src/overlays/edit/pos.rs +++ b/wayvr/src/overlays/edit/pos.rs @@ -41,7 +41,6 @@ pub fn new_pos_tab_handler( Box::new(|_common, state| { let positioning = state.pos; Box::new(move |app, owc| { - owc.global = matches!(positioning, Positioning::Static); let state = owc.active_state.as_mut().unwrap(); //want panic state.positioning = positioning; window::save_transform(state, app);