diff options
Diffstat (limited to 'gtk2_ardour/ardour_ui_ed.cc')
-rw-r--r-- | gtk2_ardour/ardour_ui_ed.cc | 28 |
1 files changed, 24 insertions, 4 deletions
diff --git a/gtk2_ardour/ardour_ui_ed.cc b/gtk2_ardour/ardour_ui_ed.cc index b795bc5ae8..30e8488106 100644 --- a/gtk2_ardour/ardour_ui_ed.cc +++ b/gtk2_ardour/ardour_ui_ed.cc @@ -42,6 +42,7 @@ #include "utils.h" #include <gtkmm2ext/gtkapplication.h> +#include <gtkmm2ext/application.h> #include <ardour/session.h> #include <ardour/profile.h> @@ -851,10 +852,29 @@ ARDOUR_UI::build_menu_bar () void ARDOUR_UI::use_menubar_as_top_menubar () { -#ifdef GTKOSX - gtk_application_set_menu_bar ((GtkMenuShell*) menu_bar->gobj()); - // ige_mac_menu_set_quit_menu_item (some_item->gobj()); -#endif + Gtk::Widget* widget; + Application* app = Application::instance (); + + /* Quit will be taken of separately */ + + if ((widget = ActionManager::get_widget ("/ui/Main/Session/Quit"))) { + widget->hide (); + } + + GtkApplicationMenuGroup* group = app->add_app_menu_group (); + + if ((widget = ActionManager::get_widget ("/ui/Main/Help/About"))) { + app->add_app_menu_item (group, dynamic_cast<MenuItem*>(widget)); + } + + if ((widget = ActionManager::get_widget ("/ui/Main/WindowMenu/ToggleOptionsEditor"))) { + app->add_app_menu_item (group, dynamic_cast<MenuItem*>(widget)); + } + + app->set_menu_bar (*menu_bar); + + app->ShouldQuit.connect (sigc::mem_fun (*this, &UI::quit)); + app->ShouldLoad.connect (sigc::mem_fun (*this, &ARDOUR_UI::idle_load)); } void |