diff --git a/wayvr/src/backend/openxr/blocker.rs b/wayvr/src/backend/openxr/blocker.rs index 981e309a..6845f328 100644 --- a/wayvr/src/backend/openxr/blocker.rs +++ b/wayvr/src/backend/openxr/blocker.rs @@ -18,6 +18,10 @@ impl InputBlocker { } } + pub fn unblock(&self, monado: &mut Monado) { + self.block_inputs(monado, false, false); + } + pub fn update(&mut self, app: &mut AppState) { let Some(monado) = &mut app.monado else { return; // monado not available diff --git a/wayvr/src/backend/openxr/mod.rs b/wayvr/src/backend/openxr/mod.rs index e43adf46..125209fd 100644 --- a/wayvr/src/backend/openxr/mod.rs +++ b/wayvr/src/backend/openxr/mod.rs @@ -499,6 +499,10 @@ pub fn openxr_run(show_by_default: bool, headless: bool) -> Result<(), BackendEr watch.config.active_state.as_mut().unwrap().transform = watch_transform; } // main_loop + if let (Some(blocker), Some(monado)) = (blocker, app.monado.as_mut()) { + blocker.unblock(monado); + } + overlays.persist_layout(&mut app); if let Err(e) = save_state(&app.session.config) { log::error!("Could not save state: {e:?}");