From 78703adbd515c220e3cc42e624e1af62145a631f Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Fri, 2 May 2025 07:54:15 +0200 Subject: app: delete tracker window when it is being removed --- app/src/main.cpp | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'app') diff --git a/app/src/main.cpp b/app/src/main.cpp index 9a371d5..f179cf8 100644 --- a/app/src/main.cpp +++ b/app/src/main.cpp @@ -23,6 +23,7 @@ #include #include +#include auto show_about(Glib::RefPtr app) { @@ -40,9 +41,9 @@ auto main(int argc, char * argv[]) -> int auto app = Adwaita::Application::create("ch.arknet.Turns", Gio::Application::Flags::HANDLES_OPEN); auto settings = turns::core::get_settings(); - + turns::core::register_types(); - + app->signal_startup().connect([app] { turns::ui::register_types(); @@ -64,7 +65,6 @@ auto main(int argc, char * argv[]) -> int app->signal_activate().connect([app, settings] { auto window = new turns::ui::Tracker{app, settings}; - app->signal_shutdown().connect([window] { delete window; }); window->present(); }); @@ -85,5 +85,13 @@ auto main(int argc, char * argv[]) -> int window->load(files[0]); }); + app->signal_window_removed().connect([](auto window) { + auto tracker = dynamic_cast(window); + if (tracker) + { + delete tracker; + } + }); + return app->run(argc, argv); } \ No newline at end of file -- cgit v1.2.3