]> git.0d.be Git - empathy.git/commitdiff
Populate from 'Anyone' when changing the account
authorEmilio Pozuelo Monfort <emilio.pozuelo@collabora.co.uk>
Mon, 25 Apr 2011 09:35:23 +0000 (10:35 +0100)
committerEmilio Pozuelo Monfort <emilio.pozuelo@collabora.co.uk>
Thu, 9 Jun 2011 11:34:54 +0000 (12:34 +0100)
libempathy-gtk/empathy-log-window.c

index aa41624483db8787185a2f37fc782f810cb0760f..669e78fbe6272e0ac4000c0dd331bfd99937ced9 100644 (file)
@@ -1464,10 +1464,6 @@ log_manager_got_entities_cb (GObject *manager,
         }
     }
 
-  /* Select 'Anyone' by default */
-  if (gtk_tree_model_get_iter_first (model, &iter))
-    gtk_tree_selection_select_iter (selection, &iter);
-
   /* Unblock signals */
   g_signal_handlers_unblock_by_func (selection,
       log_window_who_changed_cb,
@@ -1493,6 +1489,24 @@ g_print ("get_entities_for_account\n");
       log_manager_got_entities_cb, ctx);
 }
 
+static void
+select_first_entity (TplActionChain *chain, gpointer user_data)
+{
+  GtkTreeView *view;
+  GtkTreeModel *model;
+  GtkTreeSelection *selection;
+  GtkTreeIter iter;
+
+  view = GTK_TREE_VIEW (log_window->treeview_who);
+  model = gtk_tree_view_get_model (view);
+  selection = gtk_tree_view_get_selection (view);
+
+  if (gtk_tree_model_get_iter_first (model, &iter))
+    gtk_tree_selection_select_iter (selection, &iter);
+
+  _tpl_action_chain_continue (log_window->chain);
+}
+
 static void
 log_window_who_populate (EmpathyLogWindow *window)
 {
@@ -1560,6 +1574,7 @@ log_window_who_populate (EmpathyLogWindow *window)
 
       g_list_free (accounts);
     }
+  _tpl_action_chain_append (window->chain, select_first_entity, NULL);
   _tpl_action_chain_start (window->chain);
 }