From 9311b685fe46fcde1d8defe8f5220c7bba18e532 Mon Sep 17 00:00:00 2001 From: Jan Grau Date: Wed, 23 Feb 2022 21:49:24 +0100 Subject: [PATCH] Taskbar: Minimize/activate window on Super+Digit event Handle the SuperDigitKeyPressed event in the taskbar. Toggle the respective taskbar button. --- Userland/Services/Taskbar/TaskbarWindow.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/Userland/Services/Taskbar/TaskbarWindow.cpp b/Userland/Services/Taskbar/TaskbarWindow.cpp index 9e0614e4c8..4fd243e265 100644 --- a/Userland/Services/Taskbar/TaskbarWindow.cpp +++ b/Userland/Services/Taskbar/TaskbarWindow.cpp @@ -334,6 +334,24 @@ void TaskbarWindow::wm_event(GUI::WMEvent& event) warnln("failed to spawn 'Assistant' when requested via Super+Space"); break; } + case GUI::Event::WM_SuperDigitKeyPressed: { + auto& digit_event = static_cast(event); + auto index = digit_event.digit() != 0 ? digit_event.digit() - 1 : 9; + + for (auto& widget : m_task_button_container->child_widgets()) { + // NOTE: The button might be invisible depending on the current workspace + if (!widget.is_visible()) + continue; + + if (index == 0) { + static_cast(widget).click(); + break; + } + + --index; + } + break; + } case GUI::Event::WM_WorkspaceChanged: { auto& changed_event = static_cast(event); workspace_change_event(changed_event.current_row(), changed_event.current_column());