void sflphone_quit(gboolean force_quit, SFLPhoneClient *client) { if (force_quit || calllist_get_size(current_calls_tab) == 0 || main_window_ask_quit(client)) { dbus_unregister(getpid()); dbus_clean(); account_list_free(); calllist_clean(current_calls_tab); calllist_clean(contacts_tab); calllist_clean(history_tab); free_addressbook(); #if GLIB_CHECK_VERSION(2,32,0) g_application_quit(G_APPLICATION(client)); #else g_application_release(G_APPLICATION(client)); #endif } }
void sflphone_quit(gboolean force_quit, SFLPhoneClient *client) { if (force_quit || calllist_get_size(current_calls_tab) == 0 || main_window_ask_quit(client)) { dbus_unregister(getpid()); dbus_clean(); account_list_free(); calllist_clean(current_calls_tab); calllist_clean(contacts_tab); calllist_clean(history_tab); free_addressbook(); // make sure all open dialogs get a response signal so that they can close GList* top_level_windows = gtk_window_list_toplevels(); g_list_foreach(top_level_windows, (GFunc)send_response_to_dialogs, NULL); #if GLIB_CHECK_VERSION(2,32,0) g_application_quit(G_APPLICATION(client)); #else g_application_release(G_APPLICATION(client)); #endif } }