From c15ddf6b53db97e61acd45da5fd8cc9f804d7625 Mon Sep 17 00:00:00 2001 From: Sjoerd Simons Date: Thu, 4 Mar 2010 12:19:32 +0000 Subject: Cancel creation in the accounts dialog if the wizard is running If the account wizard is finished it should have created at least some accounts. Cancel any account creation that was going on in the accounts dialog so it nicely jumps showing the first real account :) --- src/cc-empathy-accounts-page.c | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) (limited to 'src/cc-empathy-accounts-page.c') diff --git a/src/cc-empathy-accounts-page.c b/src/cc-empathy-accounts-page.c index ef9b17557..383e20d41 100644 --- a/src/cc-empathy-accounts-page.c +++ b/src/cc-empathy-accounts-page.c @@ -28,6 +28,7 @@ #include #include +#include #include #include @@ -74,6 +75,20 @@ page_pack_with_accounts_dialog (CcEmpathyAccountsPage *page) gtk_widget_reparent (content, GTK_WIDGET (page)); } +static void +account_assistant_closed_cb (GtkWidget *widget, + gpointer user_data) +{ + CcEmpathyAccountsPage *page = CC_EMPATHY_ACCOUNTS_PAGE (user_data); + + if (empathy_accounts_dialog_is_creating ( + EMPATHY_ACCOUNTS_DIALOG (page->priv->accounts_window))) + { + empathy_account_dialog_cancel ( + EMPATHY_ACCOUNTS_DIALOG (page->priv->accounts_window)); + } +} + static void connection_managers_prepare (GObject *source, GAsyncResult *result, @@ -96,7 +111,14 @@ connection_managers_prepare (GObject *source, empathy_accounts_import (account_mgr, cm_mgr); if (!empathy_accounts_has_non_salut_accounts (account_mgr)) - empathy_account_assistant_show (NULL, cm_mgr); + { + GtkWidget *w; + w = empathy_account_assistant_show (NULL, cm_mgr); + + empathy_signal_connect_weak (w, "hide", + G_CALLBACK (account_assistant_closed_cb), + G_OBJECT (page)); + } out: /* remove ref from active_changed() */ -- cgit v1.2.3