diff options
author | Juan Linietsky <reduzio@gmail.com> | 2018-11-01 17:01:51 -0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-11-01 17:01:51 -0300 |
commit | 65e3ef705b0f45866e3bb4a75bafa374a559d1f0 (patch) | |
tree | bedb5cf57007a9c30b5c492b61854935ed6e6e0c /scene/gui | |
parent | 755249f7d9e67ff83d46747cf9804ee8b0b0b742 (diff) | |
parent | 592eda7ad9458ef1677565e2b86afd9aad45fed1 (diff) |
Merge pull request #21962 from YeldhamDev/switch_hover_submenu
Fix MenuButton hover switching not happening with submenus open
Diffstat (limited to 'scene/gui')
-rw-r--r-- | scene/gui/popup_menu.cpp | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/scene/gui/popup_menu.cpp b/scene/gui/popup_menu.cpp index 3239641c2f..f84b75d8d8 100644 --- a/scene/gui/popup_menu.cpp +++ b/scene/gui/popup_menu.cpp @@ -557,6 +557,21 @@ void PopupMenu::_notification(int p_what) { mouse_over = -1; update(); } + + for (int i = 0; i < items.size(); i++) { + if (items[i].submenu == "") + continue; + + Node *n = get_node(items[i].submenu); + if (!n) + continue; + + PopupMenu *pm = Object::cast_to<PopupMenu>(n); + if (!pm || !pm->is_visible()) + continue; + + pm->hide(); + } } break; } } @@ -1012,8 +1027,7 @@ bool PopupMenu::activate_item_by_event(const Ref<InputEvent> &p_event, bool p_fo code |= KEY_MASK_SHIFT; } - int il = items.size(); - for (int i = 0; i < il; i++) { + for (int i = 0; i < items.size(); i++) { if (is_item_disabled(i) || items[i].shortcut_is_disabled) continue; |