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.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/empathy-accounts-dialog.c b/src/empathy-accounts-dialog.c
index 2770c7181..ca06e14a6 100644
--- a/src/empathy-accounts-dialog.c
+++ b/src/empathy-accounts-dialog.c
@@ -175,6 +175,10 @@ static void accounts_dialog_presence_changed_cb (TpAccount *account,
gchar *status_message,
EmpathyAccountsDialog *dialog);
+static void accounts_dialog_model_selection_changed (
+ GtkTreeSelection *selection,
+ EmpathyAccountsDialog *dialog);
+
static void
accounts_dialog_update_name_label (EmpathyAccountsDialog *dialog,
const gchar *display_name)
@@ -1035,7 +1039,17 @@ accounts_dialog_delete_account_response_cb (GtkDialog *message_dialog,
account = NULL;
}
+ /* No need to call accounts_dialog_model_selection_changed while
+ * removing as we are going to call accounts_dialog_model_select_first
+ * right after which will update the selection. */
+ g_signal_handlers_block_by_func (selection,
+ accounts_dialog_model_selection_changed, account_dialog);
+
gtk_list_store_remove (GTK_LIST_STORE (model), &iter);
+
+ g_signal_handlers_unblock_by_func (selection,
+ accounts_dialog_model_selection_changed, account_dialog);
+
accounts_dialog_model_select_first (account_dialog);
}