summaryrefslogtreecommitdiff
path: root/adw/src/application.cpp
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@gmail.com>2025-04-03 22:40:01 +0200
committerFelix Morgner <felix.morgner@gmail.com>2025-04-03 22:40:01 +0200
commit9d5512624637fad84c1b3edb97270c4f10c5056a (patch)
treee95f691edae08e774905359953fb075f67aad0e4 /adw/src/application.cpp
parent6e194d366e395312c5aa8e905445cd7f4b00ed5b (diff)
downloadturns-9d5512624637fad84c1b3edb97270c4f10c5056a.tar.xz
turns-9d5512624637fad84c1b3edb97270c4f10c5056a.zip
adw: mimic gtkmm initialization
Diffstat (limited to 'adw/src/application.cpp')
-rw-r--r--adw/src/application.cpp15
1 files changed, 10 insertions, 5 deletions
diff --git a/adw/src/application.cpp b/adw/src/application.cpp
index b8f5af9..5da1a5c 100644
--- a/adw/src/application.cpp
+++ b/adw/src/application.cpp
@@ -59,16 +59,20 @@ namespace turns::adw
auto Application::create(Glib::ustring const & id, Gio::Application::Flags flags) -> Glib::RefPtr<Application>
{
- auto static did_init = false;
+ return Glib::RefPtr<Application>(new Application(id, flags));
+ }
+ Glib::Class const & Application::custom_class_init()
+ {
+
+ auto static did_init{false};
if (!did_init)
{
Gtk::init_gtkmm_internals();
- turns::adw::wrap_init();
- did_init = true;
+ adw::wrap_init();
}
- return Glib::RefPtr<Application>(new Application(id, flags));
+ return _class.init();
}
Application::Application(Glib::ConstructParams const & params)
@@ -83,8 +87,9 @@ namespace turns::adw
Application::Application(Glib::ustring const & id, Gio::Application::Flags flags)
: Glib::ObjectBase{nullptr}
- , Gtk::Application{Glib::ConstructParams{_class.init(), "application_id", Glib::c_str_or_nullptr(id), "flags", static_cast<GApplicationFlags>(flags), nullptr}}
+ , Gtk::Application{Glib::ConstructParams{custom_class_init(), "application_id", Glib::c_str_or_nullptr(id), "flags", static_cast<GApplicationFlags>(flags), nullptr}}
{
+ adw_init();
}
} // namespace turns::adw