This commit is contained in:
Porkyoot 2026-07-04 05:13:36 +09:00 committed by GitHub
commit fe2be2bff4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 19 additions and 11 deletions

View File

@ -5,7 +5,7 @@ use std::{
};
use anyhow::Context;
use glam::{Affine3A, Vec3, Vec3A};
use glam::{Affine3A, Vec3};
use slotmap::{Key, SecondaryMap, SlotMap};
use wgui::log::LogErr;
use wlx_common::{
@ -33,7 +33,7 @@ use crate::{
OverlayID, OverlaySelector,
backend::{OverlayEventData, OverlayMeta},
set::OverlayWindowSet,
snap_upright,
get_flat_hmd,
window::{OverlayCategory, OverlayWindowData},
},
};
@ -648,15 +648,13 @@ impl<T> OverlayWindowManager<T> {
}
if enabled {
self.wrappers
.wrap_edit_mode(id, &mut overlay.config, app)
.inspect_err(|e| log::error!("{e:?}"))
.unwrap(); // FIXME: unwrap
if let Err(e) = self.wrappers.wrap_edit_mode(id, &mut overlay.config, app) {
log::error!("Could not wrap edit mode for overlay {id:?}: {e:?}");
}
} else {
self.wrappers
.unwrap_edit_mode(&mut overlay.config, app)
.inspect_err(|e| log::error!("{e:?}"))
.unwrap(); // FIXME: unwrap
if let Err(e) = self.wrappers.unwrap_edit_mode(&mut overlay.config, app) {
log::error!("Could not unwrap edit mode for overlay {id:?}: {e:?}");
}
}
}
@ -816,6 +814,15 @@ impl<T> OverlayWindowManager<T> {
ws.overlays.insert(id, state);
}
}
self.anchor_local = get_flat_hmd(&app.input_state.hmd).inverse() * app.anchor;
}
if self.current_set.is_none() {
if let Some(_new_set) = new_set {
let hmd = get_flat_hmd(&app.input_state.hmd);
app.anchor = hmd * self.anchor_local;
app.anchor_initialized = true;
}
}
if let Some(new_set) = new_set {
@ -868,8 +875,9 @@ impl<T> OverlayWindowManager<T> {
pub fn show_hide(&mut self, app: &mut AppState) {
if self.current_set.is_none() {
let hmd = snap_upright(app.input_state.hmd, Vec3A::Y);
let hmd = get_flat_hmd(&app.input_state.hmd);
app.anchor = hmd * self.anchor_local;
app.anchor_initialized = true;
self.switch_to_set(app, Some(self.restore_set), false);
} else {