diff options
Diffstat (limited to 'libempathy-gtk/empathy-individual-view.c')
-rw-r--r-- | libempathy-gtk/empathy-individual-view.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/libempathy-gtk/empathy-individual-view.c b/libempathy-gtk/empathy-individual-view.c index e6ee2e132..dceae87fa 100644 --- a/libempathy-gtk/empathy-individual-view.c +++ b/libempathy-gtk/empathy-individual-view.c @@ -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 |