Merge pull request #14748 from YeldhamDev/popupmenu_circleback

Made highlighted item in PopupMenu circle back to the beginning/end when using the keyboard
This commit is contained in:
Rémi Verschelde 2017-12-17 20:22:50 +01:00 committed by GitHub
commit 1ef123c57d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -202,7 +202,11 @@ void PopupMenu::_gui_input(const Ref<InputEvent> &p_event) {
case KEY_DOWN: { 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()) if (i < 0 || i >= items.size())
continue; continue;
@ -217,7 +221,11 @@ void PopupMenu::_gui_input(const Ref<InputEvent> &p_event) {
} break; } break;
case KEY_UP: { 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()) if (i < 0 || i >= items.size())
continue; continue;