diff --git a/src/juci.cc b/src/juci.cc index db28c40..14e95a1 100644 --- a/src/juci.cc +++ b/src/juci.cc @@ -80,16 +80,12 @@ void Application::on_startup() { Menu::get().build(); - auto object = Menu::get().builder->get_object("juci-menu"); - auto juci_menu = Glib::RefPtr::cast_dynamic(object); - object = Menu::get().builder->get_object("window-menu"); - auto window_menu = Glib::RefPtr::cast_dynamic(object); - if (!juci_menu || !window_menu) { + if (!Menu::get().juci_menu || !Menu::get().window_menu) { std::cerr << "Menu not found." << std::endl; } else { - set_app_menu(juci_menu); - set_menubar(window_menu); + set_app_menu(Menu::get().juci_menu); + set_menubar(Menu::get().window_menu); } } diff --git a/src/menu.cc b/src/menu.cc index e546484..bc00538 100644 --- a/src/menu.cc +++ b/src/menu.cc @@ -404,6 +404,10 @@ void Menu::build() { try { builder->add_from_string(ui_xml); + auto object = Menu::get().builder->get_object("juci-menu"); + juci_menu = Glib::RefPtr::cast_dynamic(object); + object = Menu::get().builder->get_object("window-menu"); + window_menu = Glib::RefPtr::cast_dynamic(object); } catch (const Glib::Error &ex) { std::cerr << "building menu failed: " << ex.what(); diff --git a/src/menu.h b/src/menu.h index 1018eeb..9e3fc56 100644 --- a/src/menu.h +++ b/src/menu.h @@ -19,8 +19,12 @@ public: void set_keys(); void build(); - Glib::RefPtr builder; + Glib::RefPtr juci_menu; + Glib::RefPtr window_menu; + +private: + Glib::RefPtr builder; std::string ui_xml; }; #endif // JUCI_MENU_H_