diff options
Diffstat (limited to 'scene/gui/menu_bar.h')
| -rw-r--r-- | scene/gui/menu_bar.h | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/scene/gui/menu_bar.h b/scene/gui/menu_bar.h index c7d44aa927..962eea593f 100644 --- a/scene/gui/menu_bar.h +++ b/scene/gui/menu_bar.h @@ -114,23 +114,30 @@ class MenuBar : public Control { void _open_popup(int p_index, bool p_focus_item = false); void _popup_visibility_changed(bool p_visible); - String global_menu_name; + String global_menu_tag; int _find_global_start_index() { - if (global_menu_name.is_empty()) { + if (global_menu_tag.is_empty()) { return -1; } - DisplayServer *ds = DisplayServer::get_singleton(); - int count = ds->global_menu_get_item_count("_main"); + NativeMenu *nmenu = NativeMenu::get_singleton(); + if (!nmenu) { + return -1; + } + RID main_menu = nmenu->get_system_menu(NativeMenu::MAIN_MENU_ID); + int count = nmenu->get_item_count(main_menu); for (int i = 0; i < count; i++) { - if (ds->global_menu_get_item_tag("_main", i).operator String().begins_with(global_menu_name)) { + if (nmenu->get_item_tag(main_menu, i).operator String().begins_with(global_menu_tag)) { return i; } } return -1; } + void bind_global_menu(); + void unbind_global_menu(); + protected: virtual void shortcut_input(const Ref<InputEvent> &p_event) override; @@ -143,9 +150,6 @@ protected: public: virtual void gui_input(const Ref<InputEvent> &p_event) override; - String bind_global_menu(); - void unbind_global_menu(); - void set_switch_on_hover(bool p_enabled); bool is_switch_on_hover(); void set_disable_shortcuts(bool p_disabled); |
