diff --git a/src/dialog.cpp b/src/dialog.cpp index 407601c..ca29bc9 100644 --- a/src/dialog.cpp +++ b/src/dialog.cpp @@ -3,10 +3,7 @@ #include Dialog::Message::Message(const std::string &text, std::function &&on_cancel, bool show_progress_bar) : Gtk::Window(Gtk::WindowType::WINDOW_POPUP) { - auto g_application = g_application_get_default(); - auto gio_application = Glib::wrap(g_application, true); - auto application = Glib::RefPtr::cast_static(gio_application); - set_transient_for(*application->get_active_window()); + set_transient_for(*Glib::RefPtr::cast_dynamic(Gtk::Application::get_default())->get_active_window()); set_position(Gtk::WindowPosition::WIN_POS_CENTER_ON_PARENT); set_modal(true); @@ -83,10 +80,7 @@ std::string Dialog::gtk_dialog(const boost::filesystem::path &path, const std::s Gtk::FileChooserDialog dialog(title, action); #endif - auto g_application = g_application_get_default(); - auto gio_application = Glib::wrap(g_application, true); - auto application = Glib::RefPtr::cast_static(gio_application); - dialog.set_transient_for(*application->get_active_window()); + dialog.set_transient_for(*Glib::RefPtr::cast_dynamic(Gtk::Application::get_default())->get_active_window()); dialog.set_position(Gtk::WindowPosition::WIN_POS_CENTER_ON_PARENT); if(title == "Save File As") diff --git a/src/menu.cpp b/src/menu.cpp index f0b89eb..416ad23 100644 --- a/src/menu.cpp +++ b/src/menu.cpp @@ -572,17 +572,11 @@ const Glib::ustring menu_xml = R"RAW( )RAW"; void Menu::add_action(const std::string &name, const std::function &action) { - 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); + actions[name] = Glib::RefPtr::cast_dynamic(Gtk::Application::get_default())->add_action(name, action); } void Menu::set_keys() { - auto g_application = g_application_get_default(); - auto gio_application = Glib::wrap(g_application, true); - auto application = Glib::RefPtr::cast_static(gio_application); + auto application = Glib::RefPtr::cast_dynamic(Gtk::Application::get_default()); for(auto &key : Config::get().menu.keys) { if(actions.find(key.first) != actions.end()) { diff --git a/src/selection_dialog.cpp b/src/selection_dialog.cpp index 5306820..5aea79e 100644 --- a/src/selection_dialog.cpp +++ b/src/selection_dialog.cpp @@ -37,10 +37,7 @@ void SelectionDialogBase::ListViewText::clear() { SelectionDialogBase::SelectionDialogBase(Source::BaseView *view_, const boost::optional &start_iter, bool show_search_entry_, bool use_markup) : start_mark(start_iter ? Source::Mark(*start_iter) : Source::Mark()), view(view_), window(Gtk::WindowType::WINDOW_POPUP), vbox(Gtk::Orientation::ORIENTATION_VERTICAL), list_view_text(use_markup), show_search_entry(show_search_entry_) { - auto g_application = g_application_get_default(); - auto gio_application = Glib::wrap(g_application, true); - auto application = Glib::RefPtr::cast_static(gio_application); - window.set_transient_for(*application->get_active_window()); + window.set_transient_for(*Glib::RefPtr::cast_dynamic(Gtk::Application::get_default())->get_active_window()); window.set_type_hint(Gdk::WindowTypeHint::WINDOW_TYPE_HINT_COMBO); @@ -68,10 +65,7 @@ SelectionDialogBase::SelectionDialogBase(Source::BaseView *view_, const boost::o window.add(vbox); list_view_text.signal_realize().connect([this]() { - auto g_application = g_application_get_default(); - auto gio_application = Glib::wrap(g_application, true); - auto application = Glib::RefPtr::cast_static(gio_application); - auto application_window = application->get_active_window(); + auto application_window = Glib::RefPtr::cast_dynamic(Gtk::Application::get_default())->get_active_window(); // Calculate window width and height int row_width = 0, padding_height = 0, window_height = 0; diff --git a/src/tooltips.cpp b/src/tooltips.cpp index 30acc68..e52bd05 100644 --- a/src/tooltips.cpp +++ b/src/tooltips.cpp @@ -48,10 +48,7 @@ void Tooltip::show(bool disregard_drawn, const std::function &on_motion) //init window window = std::make_unique(Gtk::WindowType::WINDOW_POPUP); - auto g_application = g_application_get_default(); - auto gio_application = Glib::wrap(g_application, true); - auto application = Glib::RefPtr::cast_static(gio_application); - if(auto active_window = application->get_active_window()) + if(auto active_window = Glib::RefPtr::cast_dynamic(Gtk::Application::get_default())->get_active_window()) window->set_transient_for(*active_window); window->set_type_hint(Gdk::WindowTypeHint::WINDOW_TYPE_HINT_TOOLTIP);