From 60de5f653d7066698803e4d0a5df4417181abbc2 Mon Sep 17 00:00:00 2001 From: Guillaume Desmottes Date: Tue, 25 Oct 2011 17:03:28 +0200 Subject: empathy: rely on gtk_application_add_window() to manage the main loop We are not supposed to call gtk_main_quit() as we don't use gtk_main() any more. Instead we add the windows to the GtkApplication which will take care of exiting when they have been all destroyed. https://bugzilla.gnome.org/show_bug.cgi?id=662504 --- src/empathy-main-window.c | 2 +- src/empathy-status-icon.c | 4 +++- src/empathy.c | 7 +++---- 3 files changed, 7 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/empathy-main-window.c b/src/empathy-main-window.c index c5f13dfaf..da8acf153 100644 --- a/src/empathy-main-window.c +++ b/src/empathy-main-window.c @@ -1433,7 +1433,7 @@ static void main_window_chat_quit_cb (GtkAction *action, EmpathyMainWindow *window) { - gtk_main_quit (); + gtk_widget_destroy (GTK_WIDGET (window)); } static void diff --git a/src/empathy-status-icon.c b/src/empathy-status-icon.c index d6f5b2e46..3aa27a467 100644 --- a/src/empathy-status-icon.c +++ b/src/empathy-status-icon.c @@ -320,7 +320,9 @@ static void status_icon_quit_cb (GtkAction *action, EmpathyStatusIcon *icon) { - gtk_main_quit (); + EmpathyStatusIconPriv *priv = GET_PRIV (icon); + + gtk_widget_destroy (priv->window); } static void diff --git a/src/empathy.c b/src/empathy.c index e1dab1f18..b73bf1b03 100644 --- a/src/empathy.c +++ b/src/empathy.c @@ -181,9 +181,6 @@ empathy_app_finalize (GObject *object) g_free (self->preferences_tab); - if (self->window != NULL) - gtk_widget_destroy (self->window); - if (finalize != NULL) finalize (object); } @@ -351,12 +348,14 @@ empathy_app_command_line (GApplication *app, g_error_free (error); } - g_application_hold (G_APPLICATION (app)); self->activated = TRUE; /* Setting up UI */ self->window = empathy_main_window_dup (); + gtk_application_add_window (GTK_APPLICATION (app), + GTK_WINDOW (self->window)); + /* check if Shell is running */ dbus = tp_dbus_daemon_dup (&error); g_assert_no_error (error); -- cgit v1.2.3