mirror of
https://github.com/RGBCube/serenity
synced 2025-05-25 19:15:06 +00:00
WindowServer: Ensure on a menu key press invalid items are not hovered
Whenever a new menu item is hovered through a up or down key press, we should always end up hovering a valid item.
This commit is contained in:
parent
7b6d450b6a
commit
01cefa83aa
1 changed files with 4 additions and 4 deletions
|
@ -399,12 +399,12 @@ void Menu::event(Core::Event& event)
|
||||||
do {
|
do {
|
||||||
if (m_hovered_item_index == 0)
|
if (m_hovered_item_index == 0)
|
||||||
m_hovered_item_index = m_items.size() - 1;
|
m_hovered_item_index = m_items.size() - 1;
|
||||||
else if (m_hovered_item_index < 0)
|
|
||||||
return;
|
|
||||||
else
|
else
|
||||||
--m_hovered_item_index;
|
--m_hovered_item_index;
|
||||||
} while (hovered_item()->type() == MenuItem::Separator);
|
} while (hovered_item()->type() == MenuItem::Separator);
|
||||||
|
|
||||||
|
ASSERT(m_hovered_item_index >= 0 && m_hovered_item_index <= m_items.size() - 1);
|
||||||
|
|
||||||
if (is_scrollable() && m_hovered_item_index < m_scroll_offset)
|
if (is_scrollable() && m_hovered_item_index < m_scroll_offset)
|
||||||
--m_scroll_offset;
|
--m_scroll_offset;
|
||||||
|
|
||||||
|
@ -421,12 +421,12 @@ void Menu::event(Core::Event& event)
|
||||||
do {
|
do {
|
||||||
if (m_hovered_item_index == m_items.size() - 1)
|
if (m_hovered_item_index == m_items.size() - 1)
|
||||||
m_hovered_item_index = 0;
|
m_hovered_item_index = 0;
|
||||||
else if (m_hovered_item_index > m_items.size() - 1)
|
|
||||||
return;
|
|
||||||
else
|
else
|
||||||
++m_hovered_item_index;
|
++m_hovered_item_index;
|
||||||
} while (hovered_item()->type() == MenuItem::Separator);
|
} while (hovered_item()->type() == MenuItem::Separator);
|
||||||
|
|
||||||
|
ASSERT(m_hovered_item_index >= 0 && m_hovered_item_index <= m_items.size() - 1);
|
||||||
|
|
||||||
if (is_scrollable() && m_hovered_item_index >= (m_scroll_offset + visible_item_count()))
|
if (is_scrollable() && m_hovered_item_index >= (m_scroll_offset + visible_item_count()))
|
||||||
++m_scroll_offset;
|
++m_scroll_offset;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue