bring back ToggleDashboard keybind support

This commit is contained in:
Aleksander
2026-01-05 17:53:17 +01:00
parent d8935c041f
commit 1d78da16ab
5 changed files with 27 additions and 17 deletions

View File

@@ -259,7 +259,10 @@ pub fn openvr_run(show_by_default: bool, headless: bool) -> Result<(), BackendEr
.pointers
.iter()
.any(|p| p.now.toggle_dashboard && !p.before.toggle_dashboard)
{ /* TODO */ }
{
app.tasks
.enqueue(TaskType::Overlay(OverlayTask::ToggleDashboard));
}
overlays
.values_mut()

View File

@@ -300,7 +300,10 @@ pub fn openxr_run(show_by_default: bool, headless: bool) -> Result<(), BackendEr
.pointers
.iter()
.any(|p| p.now.toggle_dashboard && !p.before.toggle_dashboard)
{ /* TODO */ }
{
app.tasks
.enqueue(TaskType::Overlay(OverlayTask::ToggleDashboard));
}
watch_fade(&mut app, overlays.mut_by_id(watch_id).unwrap()); // want panic
if let Some(ref mut space_mover) = playspace {

View File

@@ -85,6 +85,7 @@ pub enum OverlayTask {
SoftToggleOverlay(OverlaySelector),
DeleteActiveSet,
ToggleEditMode,
ToggleDashboard,
ShowHide,
CleanupMirrors,
Modify(OverlaySelector, Box<ModifyOverlayTask>),

View File

@@ -238,16 +238,8 @@ pub(super) fn setup_custom_button<S: 'static>(
return Ok(EventResult::Pass);
}
app.tasks.enqueue(TaskType::Overlay(OverlayTask::Modify(
OverlaySelector::Name(DASH_NAME.into()),
Box::new(move |app, owc| {
if owc.active_state.is_none() {
owc.activate(app);
} else {
owc.deactivate();
}
}),
)));
app.tasks
.enqueue(TaskType::Overlay(OverlayTask::ToggleDashboard));
Ok(EventResult::Consumed)
}),
"::SetToggle" => {

View File

@@ -21,7 +21,7 @@ use crate::{
overlays::{
anchor::{create_anchor, create_grab_help},
custom::create_custom,
dashboard::create_dash_frontend,
dashboard::{DASH_NAME, create_dash_frontend},
edit::EditWrapperManager,
keyboard::create_keyboard,
screen::create_screens,
@@ -201,17 +201,28 @@ where
OverlayTask::ToggleEditMode => {
self.set_edit_mode(!self.edit_mode, app)?;
}
OverlayTask::ToggleDashboard => {
if let Some(overlay) =
self.mut_by_selector(&OverlaySelector::Name(DASH_NAME.into()))
{
if overlay.config.active_state.is_none() {
overlay.config.activate(app);
} else {
overlay.config.deactivate();
}
}
}
OverlayTask::AddSet => {
self.sets.push(OverlayWindowSet::default());
let len = self.sets.len();
for id in [self.watch_id, self.keyboard_id] {
self.mut_by_id(id).map(|o| {
if let Some(o) = self.mut_by_id(id) {
let _ = o
.config
.backend
.notify(app, OverlayEventData::NumSetsChanged(len))
.log_err("Could not notify NumSetsChanged");
});
}
}
}
OverlayTask::DeleteActiveSet => {
@@ -243,13 +254,13 @@ where
self.sets.remove(set);
let len = self.sets.len();
for id in [self.watch_id, self.keyboard_id] {
self.mut_by_id(id).map(|o| {
if let Some(o) = self.mut_by_id(id) {
let _ = o
.config
.backend
.notify(app, OverlayEventData::NumSetsChanged(len))
.log_err("Could not notify NumSetsChanged");
});
}
}
}
OverlayTask::CleanupMirrors => {