diff --git a/ChangeLog b/ChangeLog index 80c49dfeb3..03231717ea 100644 --- a/ChangeLog +++ b/ChangeLog @@ -2,6 +2,8 @@ * gtk/gtktreeview.c (gtk_tree_view_state_changed): Set background upon state changes. (#301651, Billy Biggs) + (gtk_tree_view_get_path_at_pos): Take RTL into account + when iterating over the columns. (#302163) * configure.in: Check for nm. diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 80c49dfeb3..03231717ea 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -2,6 +2,8 @@ * gtk/gtktreeview.c (gtk_tree_view_state_changed): Set background upon state changes. (#301651, Billy Biggs) + (gtk_tree_view_get_path_at_pos): Take RTL into account + when iterating over the columns. (#302163) * configure.in: Check for nm. diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 80c49dfeb3..03231717ea 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -2,6 +2,8 @@ * gtk/gtktreeview.c (gtk_tree_view_state_changed): Set background upon state changes. (#301651, Billy Biggs) + (gtk_tree_view_get_path_at_pos): Take RTL into account + when iterating over the columns. (#302163) * configure.in: Check for nm. diff --git a/gtk/gtktreeview.c b/gtk/gtktreeview.c index 2e60e1395e..bf5bddae14 100644 --- a/gtk/gtktreeview.c +++ b/gtk/gtktreeview.c @@ -11318,8 +11318,12 @@ gtk_tree_view_get_path_at_pos (GtkTreeView *tree_view, GList *list; gint remaining_x = x; gboolean found = FALSE; + gboolean rtl; - for (list = tree_view->priv->columns; list; list = list->next) + rtl = (gtk_widget_get_direction (GTK_WIDGET (tree_view)) == GTK_TEXT_DIR_RTL); + for (list = (rtl ? g_list_last (tree_view->priv->columns) : g_list_first (tree_view->priv->columns)); + list; + list = (rtl ? list->prev : list->next)) { tmp_column = list->data;