summaryrefslogtreecommitdiff
path: root/app/src
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@gmail.com>2025-05-02 07:54:15 +0200
committerFelix Morgner <felix.morgner@gmail.com>2025-05-02 07:54:15 +0200
commit78703adbd515c220e3cc42e624e1af62145a631f (patch)
tree2ff02df789b5c88ce167d1ec6253ae70cc375454 /app/src
parent4c1d33e043fb03cda82bc8424f7c5b9194ff4526 (diff)
downloadturns-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.cpp14
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