diff --git a/src/dialogs.cc b/src/dialogs.cc index d2976bc..d719f9a 100644 --- a/src/dialogs.cc +++ b/src/dialogs.cc @@ -3,6 +3,7 @@ #include #include #include "juci.h" +#include std::string open_dialog(const std::string &title, const std::vector> &buttons, @@ -17,7 +18,9 @@ std::string open_dialog(const std::string &title, gtk_file_chooser_set_filename((GtkFileChooser*)dialog.gobj(), file_name.c_str()); dialog.set_position(Gtk::WindowPosition::WIN_POS_CENTER_ALWAYS); - auto application=Glib::RefPtr::cast_static(Gio::Application::get_default()).release(); + auto g_application=g_application_get_default(); //TODO: Post issue that Gio::Application::get_default should return pointer and not Glib::RefPtr + auto gio_application=Glib::wrap(g_application, true); + auto application=Glib::RefPtr::cast_static(gio_application); dialog.set_transient_for(*application->window); for (auto &button : buttons) diff --git a/src/menu.cc b/src/menu.cc index cf3ef98..735882a 100644 --- a/src/menu.cc +++ b/src/menu.cc @@ -295,13 +295,17 @@ void Menu::init() { } void Menu::add_action(const std::string &name, std::function action) { - auto application=Glib::RefPtr::cast_static(Gio::Application::get_default()).release(); + auto g_application=g_application_get_default(); + auto gio_application=Glib::wrap(g_application, true); + auto application=Glib::RefPtr::cast_static(gio_application); actions[name]=application->add_action(name, action); } void Menu::set_keys() { - auto application=Glib::RefPtr::cast_static(Gio::Application::get_default()).release(); + auto g_application=g_application_get_default(); + auto gio_application=Glib::wrap(g_application, true); + auto application=Glib::RefPtr::cast_static(gio_application); for(auto &key: Singleton::config->menu.keys) { if(key.second.size()>0 && actions.find(key.first)!=actions.end()) {