::OverlayToggle to not reset overlay on show

This commit is contained in:
galister
2026-01-07 02:56:55 +09:00
parent 8160d20e73
commit f0a77f6da0
6 changed files with 14 additions and 68 deletions

View File

@@ -307,38 +307,13 @@ pub(super) fn setup_custom_button<S: 'static>(
return;
};
Box::new(move |_common, data, app, _| {
if !test_button(data) || !test_duration(&button, app) {
return Ok(EventResult::Pass);
}
app.tasks.enqueue(TaskType::Overlay(OverlayTask::Modify(
OverlaySelector::Name(arg.clone()),
Box::new(move |app, owc| {
if owc.active_state.is_none() {
owc.activate(app);
} else {
owc.deactivate();
}
}),
)));
Ok(EventResult::Consumed)
})
}
"::OverlaySoftToggle" => {
let arg: Arc<str> = args.collect::<Vec<_>>().join(" ").into();
if arg.len() < 1 {
log::error!("{command} has missing arguments");
return;
};
Box::new(move |_common, data, app, _| {
if !test_button(data) || !test_duration(&button, app) {
return Ok(EventResult::Pass);
}
app.tasks
.enqueue(TaskType::Overlay(OverlayTask::SoftToggleOverlay(
.enqueue(TaskType::Overlay(OverlayTask::ToggleOverlay(
OverlaySelector::Name(arg.clone()),
)));
Ok(EventResult::Consumed)