From e616cb35badeec92aa4fc1860c03507ddf3bc29d Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Boric Date: Sat, 13 Feb 2021 14:40:20 +0100 Subject: [PATCH] WindowManager: Fix default menu item on key down This fixes the key down behavior on Terminal's Edit menu, which tried to hover the disabled menu item Copy if there was nothing selected. --- Userland/Services/WindowServer/Menu.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/Userland/Services/WindowServer/Menu.cpp b/Userland/Services/WindowServer/Menu.cpp index 4d204406c2..057dfb76e0 100644 --- a/Userland/Services/WindowServer/Menu.cpp +++ b/Userland/Services/WindowServer/Menu.cpp @@ -391,9 +391,16 @@ void Menu::event(Core::Event& event) ASSERT(menu_window()); ASSERT(menu_window()->is_visible()); - // Default to the first item on key press if one has not been selected yet + // Default to the first enabled, non-separator item on key press if one has not been selected yet if (!hovered_item()) { - m_hovered_item_index = 0; + int counter = 0; + for (const auto& item : m_items) { + if (item.type() != MenuItem::Separator && item.is_enabled()) { + m_hovered_item_index = counter; + break; + } + counter++; + } update_for_new_hovered_item(key == Key_Right); return; }