diff options
| author | Felix Morgner <felix.morgner@gmail.com> | 2025-05-02 07:54:15 +0200 |
|---|---|---|
| committer | Felix Morgner <felix.morgner@gmail.com> | 2025-05-02 07:54:15 +0200 |
| commit | 78703adbd515c220e3cc42e624e1af62145a631f (patch) | |
| tree | 2ff02df789b5c88ce167d1ec6253ae70cc375454 /app/src | |
| parent | 4c1d33e043fb03cda82bc8424f7c5b9194ff4526 (diff) | |
| download | turns-78703adbd515c220e3cc42e624e1af62145a631f.tar.xz turns-78703adbd515c220e3cc42e624e1af62145a631f.zip | |
app: delete tracker window when it is being removed
Diffstat (limited to 'app/src')
| -rw-r--r-- | app/src/main.cpp | 14 |
1 files changed, 11 insertions, 3 deletions
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 <libintl.h> #include <clocale> +#include <print> auto show_about(Glib::RefPtr<Adwaita::Application> 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<turns::ui::Tracker *>(window); + if (tracker) + { + delete tracker; + } + }); + return app->run(argc, argv); }
\ No newline at end of file |
