]> git.0d.be Git - empathy.git/commitdiff
keep the selected contact visible after search
authorFelix Kaser <f.kaser@gmx.net>
Wed, 28 Jul 2010 12:43:05 +0000 (14:43 +0200)
committerFelix Kaser <f.kaser@gmx.net>
Thu, 29 Jul 2010 13:48:13 +0000 (15:48 +0200)
empathy will scroll automatically to the cell which is selected, when the search is hidden.

libempathy-gtk/empathy-individual-view.c

index e6ee2e132702ccda63713e75162fb5aa31015ffd..dceae87fac554bf9fcb777a1226152eb535e6537 100644 (file)
@@ -1289,6 +1289,7 @@ individual_view_search_hide_cb (EmpathyLiveSearch *search,
 {
   EmpathyIndividualViewPriv *priv = GET_PRIV (view);
   GtkTreeModel *model;
+  GtkTreePath *cursor_path;
   GtkTreeIter iter;
   gboolean valid = FALSE;
 
@@ -1340,6 +1341,12 @@ individual_view_search_hide_cb (EmpathyLiveSearch *search,
       individual_view_row_expand_or_collapse_cb, GINT_TO_POINTER (TRUE));
   g_signal_handlers_unblock_by_func (view,
       individual_view_row_expand_or_collapse_cb, GINT_TO_POINTER (FALSE));
+
+  /* keep the selected contact visible */
+  gtk_tree_view_get_cursor (GTK_TREE_VIEW (view), &cursor_path, NULL);
+  gtk_tree_view_scroll_to_cell (GTK_TREE_VIEW (view), cursor_path, NULL,
+      FALSE, 0, 0);
+  gtk_tree_path_free (cursor_path);
 }
 
 static void