From 6c049ea4c4ebc95cb970985f01eeed461b453991 Mon Sep 17 00:00:00 2001 From: bugreport0 <32939607+bugreport0@users.noreply.github.com> Date: Sun, 3 Oct 2021 12:33:08 +0200 Subject: [PATCH] LibGUI+WindowServer: Flash menubar menu when using a keyboard shortcut Briefly flash the menubar menu containing the keyboard shortcut action to give the user immediate visual feedback on their interaction with the system. --- Userland/Libraries/LibGUI/Action.cpp | 8 +++++ Userland/Libraries/LibGUI/Action.h | 1 + Userland/Libraries/LibGUI/MenuItem.h | 1 + Userland/Libraries/LibGUI/Window.cpp | 10 ++++++ Userland/Libraries/LibGUI/Window.h | 1 + .../LibGUI/WindowServerConnection.cpp | 1 + .../WindowServer/ClientConnection.cpp | 34 +++++++++++++++++++ .../Services/WindowServer/ClientConnection.h | 2 ++ Userland/Services/WindowServer/Menubar.h | 21 ++++++++++++ .../Services/WindowServer/WindowFrame.cpp | 9 ++++- .../Services/WindowServer/WindowServer.ipc | 1 + 11 files changed, 88 insertions(+), 1 deletion(-) diff --git a/Userland/Libraries/LibGUI/Action.cpp b/Userland/Libraries/LibGUI/Action.cpp index 9b881777da..89beb9082c 100644 --- a/Userland/Libraries/LibGUI/Action.cpp +++ b/Userland/Libraries/LibGUI/Action.cpp @@ -135,6 +135,14 @@ void Action::activate(Core::Object* activator) m_activator = nullptr; } +void Action::flash_menubar_menu() +{ + if (auto* app = Application::the()) + if (auto* window = app->active_window()) + for (auto& menu_item : m_menu_items) + window->flash_menubar_menu_for(*menu_item); +} + void Action::register_button(Badge