diff options
Diffstat (limited to 'libempathy-gtk/empathy-account-chooser.c')
-rw-r--r-- | libempathy-gtk/empathy-account-chooser.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/libempathy-gtk/empathy-account-chooser.c b/libempathy-gtk/empathy-account-chooser.c index 7dccb2179..34ebc7eac 100644 --- a/libempathy-gtk/empathy-account-chooser.c +++ b/libempathy-gtk/empathy-account-chooser.c @@ -58,6 +58,7 @@ typedef struct { EmpathyAccountManager *manager; gboolean set_active_item; + gboolean account_manually_set; gboolean has_all_option; EmpathyAccountChooserFilterFunc filter; gpointer filter_data; @@ -153,6 +154,7 @@ empathy_account_chooser_init (EmpathyAccountChooser *chooser) chooser->priv = priv; priv->set_active_item = FALSE; + priv->account_manually_set = FALSE; priv->filter = NULL; priv->filter_data = NULL; @@ -322,6 +324,7 @@ gboolean empathy_account_chooser_set_account (EmpathyAccountChooser *chooser, EmpathyAccount *account) { + EmpathyAccountChooserPriv *priv; GtkComboBox *combobox; GtkTreeModel *model; GtkTreeIter iter; @@ -329,6 +332,8 @@ empathy_account_chooser_set_account (EmpathyAccountChooser *chooser, g_return_val_if_fail (EMPATHY_IS_ACCOUNT_CHOOSER (chooser), FALSE); + priv = GET_PRIV (chooser); + combobox = GTK_COMBO_BOX (chooser); model = gtk_combo_box_get_model (combobox); gtk_combo_box_get_active_iter (combobox, &iter); @@ -340,6 +345,8 @@ empathy_account_chooser_set_account (EmpathyAccountChooser *chooser, (GtkTreeModelForeachFunc) account_chooser_set_account_foreach, &data); + priv->account_manually_set = data.set; + return data.set; } @@ -622,7 +629,8 @@ account_chooser_update_iter (EmpathyAccountChooser *chooser, -1); /* set first connected account as active account */ - if (priv->set_active_item == FALSE && is_enabled) { + if (priv->account_manually_set == FALSE && + priv->set_active_item == FALSE && is_enabled) { priv->set_active_item = TRUE; gtk_combo_box_set_active_iter (combobox, iter); } |