Now makes sure the selected entry is visible upon entry, too.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14398 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
a51b55c985
commit
19567a9917
|
@ -284,6 +284,24 @@ last_selectable_item(Menu *menu)
|
|||
}
|
||||
|
||||
|
||||
static bool
|
||||
make_item_visible(Menu *menu, int32 selected)
|
||||
{
|
||||
if (sMenuOffset > selected
|
||||
|| sMenuOffset + menu_height() <= selected) {
|
||||
if (sMenuOffset > selected)
|
||||
sMenuOffset = selected;
|
||||
else
|
||||
sMenuOffset = selected + 1 - menu_height();
|
||||
|
||||
draw_menu(menu);
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
run_menu(Menu *menu)
|
||||
{
|
||||
|
@ -302,6 +320,8 @@ run_menu(Menu *menu)
|
|||
item->Select(true);
|
||||
}
|
||||
|
||||
make_item_visible(menu, selected);
|
||||
|
||||
while (true) {
|
||||
union key key = wait_for_key();
|
||||
|
||||
|
@ -366,7 +386,8 @@ run_menu(Menu *menu)
|
|||
MenuItem *item = menu->ItemAt(selected);
|
||||
if (item != NULL)
|
||||
item->Select(true);
|
||||
|
||||
|
||||
make_item_visible(menu, selected);
|
||||
// make sure that the new selected entry is visible
|
||||
if (sMenuOffset > selected
|
||||
|| sMenuOffset + menu_height() <= selected) {
|
||||
|
|
Loading…
Reference in New Issue