]> git.0d.be Git - empathy.git/commitdiff
Don't override empathy_account_chooser_set_account when setting filtering
authorDavyd Madeley <davyd@madeley.id.au>
Wed, 25 Feb 2009 04:47:15 +0000 (13:47 +0900)
committerDavyd Madeley <davyd@madeley.id.au>
Wed, 15 Jul 2009 10:12:16 +0000 (11:12 +0100)
libempathy-gtk/empathy-account-chooser.c

index 7dccb21792638f63c7466d752f67c133dc8bbbcf..34ebc7eac40181df36caef69013cbf6a079515c3 100644 (file)
@@ -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);
        }