exit on close (i.e. never daemonize)
This commit is contained in:
@@ -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),
|
||||||
|
Reference in New Issue
Block a user