exit on close (i.e. never daemonize)

This commit is contained in:
2024-05-18 06:18:20 +00:00
parent 75c4072c4e
commit 88dbe108a8

View File

@@ -606,11 +606,16 @@ notify_window_visible_cb (GtkWidget *window,
CallsManager *manager = calls_manager_get_default (); CallsManager *manager = calls_manager_get_default ();
g_return_if_fail (CALLS_IS_APPLICATION (application)); g_return_if_fail (CALLS_IS_APPLICATION (application));
g_return_if_fail (CALLS_IS_CALL_WINDOW (window));
gboolean calls_visible = gtk_widget_is_visible (GTK_WIDGET (application->call_window));
gboolean main_visible = gtk_widget_is_visible (GTK_WIDGET (application->main_window));
/* The UI is being closed, hang up active calls */ /* The UI is being closed, hang up active calls */
if (!gtk_widget_is_visible (window)) if (!calls_visible)
calls_manager_hang_up_all_calls (manager); calls_manager_hang_up_all_calls (manager);
/* No windows (of interest) are open -> exit */
if (!main_visible && !calls_visible)
app_shutdown (G_APPLICATION (application));
} }
@@ -687,6 +692,12 @@ start_proper (CallsApplication *self)
self, self,
G_CONNECT_AFTER); G_CONNECT_AFTER);
g_signal_connect_object (self->main_window,
"notify::visible",
G_CALLBACK (notify_window_visible_cb),
self,
G_CONNECT_AFTER);
g_signal_connect (G_OBJECT (self->main_window), g_signal_connect (G_OBJECT (self->main_window),
"hide", "hide",
G_CALLBACK (on_main_window_hidden), G_CALLBACK (on_main_window_hidden),