mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-22 07:30:19 +00:00
WindowServer: make menus wrap vertically
This commit adds vertical wrap to menus. The first item is focused if Key_Down is pressed on the last item and the last item is focused if Key_up is pressed on the first item.
This commit is contained in:
parent
4a36a51618
commit
5aa37f6f5c
Notes:
sideshowbarker
2024-07-19 09:44:18 +09:00
Author: https://github.com/okraits Commit: https://github.com/SerenityOS/serenity/commit/5aa37f6f5c9 Pull-request: https://github.com/SerenityOS/serenity/pull/1153
1 changed files with 10 additions and 4 deletions
|
@ -393,9 +393,12 @@ void WSMenu::event(CEvent& event)
|
|||
return;
|
||||
|
||||
do {
|
||||
if (m_hovered_item_index <= 0)
|
||||
if (m_hovered_item_index == 0)
|
||||
m_hovered_item_index = m_items.size() - 1;
|
||||
else if (m_hovered_item_index < 0)
|
||||
return;
|
||||
--m_hovered_item_index;
|
||||
else
|
||||
--m_hovered_item_index;
|
||||
} while (hovered_item()->type() == WSMenuItem::Separator);
|
||||
|
||||
if (is_scrollable() && m_hovered_item_index < m_scroll_offset)
|
||||
|
@ -412,9 +415,12 @@ void WSMenu::event(CEvent& event)
|
|||
return;
|
||||
|
||||
do {
|
||||
if (m_hovered_item_index >= m_items.size() - 1)
|
||||
if (m_hovered_item_index == m_items.size() - 1)
|
||||
m_hovered_item_index = 0;
|
||||
else if (m_hovered_item_index > m_items.size() - 1)
|
||||
return;
|
||||
++m_hovered_item_index;
|
||||
else
|
||||
++m_hovered_item_index;
|
||||
} while (hovered_item()->type() == WSMenuItem::Separator);
|
||||
|
||||
if (is_scrollable() && m_hovered_item_index >= (m_scroll_offset + visible_item_count()))
|
||||
|
|
Loading…
Reference in a new issue