Made highlighted item in PopupMenu circle back to the beginning/end when using the keyboard.

This commit is contained in:
Michael Alexsander Silva Dias 2017-12-16 13:54:43 -02:00
parent 1b9c8daf7b
commit c19cc581ec

View file

@ -202,7 +202,11 @@ void PopupMenu::_gui_input(const Ref<InputEvent> &p_event) {
case KEY_DOWN: {
for (int i = mouse_over + 1; i < items.size(); i++) {
int search_from = mouse_over + 1;
if (search_from >= items.size())
search_from = 0;
for (int i = search_from; i < items.size(); i++) {
if (i < 0 || i >= items.size())
continue;
@ -222,7 +226,11 @@ void PopupMenu::_gui_input(const Ref<InputEvent> &p_event) {
} break;
case KEY_UP: {
for (int i = mouse_over - 1; i >= 0; i--) {
int search_from = mouse_over - 1;
if (search_from < 0)
search_from = items.size() - 1;
for (int i = search_from; i >= 0; i--) {
if (i < 0 || i >= items.size())
continue;