mirror of https://github.com/wayvr-org/wayvr.git
make space_reset obey space_drag_affects_world
This commit is contained in:
parent
5dffbb9fdb
commit
44b7a2a6ab
|
|
@ -49,7 +49,7 @@ impl PlayspaceMover {
|
|||
self.fix_floor(chaperone_mgr, app, overlays);
|
||||
}
|
||||
PlayspaceTask::Reset => {
|
||||
self.reset_offset(chaperone_mgr, overlays, &mut app.anchor);
|
||||
self.reset_offset(chaperone_mgr, app, overlays);
|
||||
}
|
||||
PlayspaceTask::Recenter => {
|
||||
self.recenter(chaperone_mgr, app, overlays);
|
||||
|
|
@ -181,7 +181,7 @@ impl PlayspaceMover {
|
|||
|
||||
for pointer in &app.input_state.pointers {
|
||||
if pointer.now.space_reset && !pointer.before.space_reset {
|
||||
self.reset_offset(chaperone_mgr, overlays, &mut app.anchor);
|
||||
self.reset_offset(chaperone_mgr, app, overlays);
|
||||
log::info!("Space reset");
|
||||
return;
|
||||
}
|
||||
|
|
@ -191,8 +191,8 @@ impl PlayspaceMover {
|
|||
pub fn reset_offset(
|
||||
&mut self,
|
||||
chaperone_mgr: &mut ChaperoneSetupManager,
|
||||
app: &mut AppState,
|
||||
overlays: &mut OverlayWindowManager<OpenVrOverlayData>,
|
||||
anchor: &mut Affine3A,
|
||||
) {
|
||||
let Some(before) = get_working_copy(&self.universe, chaperone_mgr) else {
|
||||
log::warn!("Can't reset offset - failed to get zero pose");
|
||||
|
|
@ -207,7 +207,9 @@ impl PlayspaceMover {
|
|||
set_working_copy(&self.universe, chaperone_mgr, &xform);
|
||||
chaperone_mgr.commit_working_copy(EChaperoneConfigFile::EChaperoneConfigFile_Live);
|
||||
|
||||
playspace_common::shift_world(overlays, anchor, &before, &xform);
|
||||
if !app.session.config.space_drag_affects_world {
|
||||
playspace_common::shift_world(overlays, &mut app.anchor, &before, &xform);
|
||||
}
|
||||
|
||||
if self.drag.is_some() {
|
||||
log::info!("Space drag interrupted by manual reset");
|
||||
|
|
|
|||
|
|
@ -338,8 +338,10 @@ impl PlayspaceMover {
|
|||
let offset = self.playspace_state.openxr_space_center;
|
||||
apply_offset(offset, &mut monado.ipc);
|
||||
|
||||
let after = offset;
|
||||
playspace_common::shift_world(overlays, &mut app.anchor, &before, &after);
|
||||
if !app.session.config.space_drag_affects_world {
|
||||
let after = offset;
|
||||
playspace_common::shift_world(overlays, &mut app.anchor, &before, &after);
|
||||
}
|
||||
}
|
||||
|
||||
pub fn fix_floor(
|
||||
|
|
|
|||
Loading…
Reference in New Issue