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 .pointers
.iter() .iter()
.any(|p| p.now.toggle_dashboard && !p.before.toggle_dashboard) .any(|p| p.now.toggle_dashboard && !p.before.toggle_dashboard)
{ /* TODO */ } {
app.tasks
.enqueue(TaskType::Overlay(OverlayTask::ToggleDashboard));
}
overlays overlays
.values_mut() .values_mut()

View File

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

View File

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

View File

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

View File

@@ -21,7 +21,7 @@ use crate::{
overlays::{ overlays::{
anchor::{create_anchor, create_grab_help}, anchor::{create_anchor, create_grab_help},
custom::create_custom, custom::create_custom,
dashboard::create_dash_frontend, dashboard::{DASH_NAME, create_dash_frontend},
edit::EditWrapperManager, edit::EditWrapperManager,
keyboard::create_keyboard, keyboard::create_keyboard,
screen::create_screens, screen::create_screens,
@@ -201,17 +201,28 @@ where
OverlayTask::ToggleEditMode => { OverlayTask::ToggleEditMode => {
self.set_edit_mode(!self.edit_mode, app)?; 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 => { OverlayTask::AddSet => {
self.sets.push(OverlayWindowSet::default()); self.sets.push(OverlayWindowSet::default());
let len = self.sets.len(); let len = self.sets.len();
for id in [self.watch_id, self.keyboard_id] { 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 let _ = o
.config .config
.backend .backend
.notify(app, OverlayEventData::NumSetsChanged(len)) .notify(app, OverlayEventData::NumSetsChanged(len))
.log_err("Could not notify NumSetsChanged"); .log_err("Could not notify NumSetsChanged");
}); }
} }
} }
OverlayTask::DeleteActiveSet => { OverlayTask::DeleteActiveSet => {
@@ -243,13 +254,13 @@ where
self.sets.remove(set); self.sets.remove(set);
let len = self.sets.len(); let len = self.sets.len();
for id in [self.watch_id, self.keyboard_id] { 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 let _ = o
.config .config
.backend .backend
.notify(app, OverlayEventData::NumSetsChanged(len)) .notify(app, OverlayEventData::NumSetsChanged(len))
.log_err("Could not notify NumSetsChanged"); .log_err("Could not notify NumSetsChanged");
}); }
} }
} }
OverlayTask::CleanupMirrors => { OverlayTask::CleanupMirrors => {