aboutsummaryrefslogtreecommitdiffstats
path: root/src/empathy-accounts-dialog.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/empathy-accounts-dialog.c')
-rw-r--r--src/empathy-accounts-dialog.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/empathy-accounts-dialog.c b/src/empathy-accounts-dialog.c
index 014b73611..460ea9023 100644
--- a/src/empathy-accounts-dialog.c
+++ b/src/empathy-accounts-dialog.c
@@ -1705,6 +1705,9 @@ do_constructor (GType type,
dialog_singleton = EMPATHY_ACCOUNTS_DIALOG (retval);
g_object_add_weak_pointer (retval, (gpointer) &dialog_singleton);
+ /* We add an extra reference that we'll release when the dialog is
+ * destroyed (accounts_dialog_destroy_cb) */
+ g_object_ref (retval);
}
return retval;
@@ -1840,6 +1843,9 @@ empathy_accounts_dialog_show (GtkWindow *parent,
}
gtk_window_present (GTK_WINDOW (priv->window));
+ /* EmpathyAccountsDialog kepts a ref on itself until the dialog is
+ * destroyed so we can release the ref returned by the constructor now. */
+ g_object_unref (dialog);
return priv->window;
}