From 4c2e3dc62e5258d3c3b14606f9452efd3763ba0e Mon Sep 17 00:00:00 2001 From: lukefromdc Date: Mon, 2 Jan 2017 19:11:32 -0500 Subject: Fix keyboard-down wraparound on compact view Fix https://github.com/mate-desktop/caja/issues/671 Apply https://git.gnome.org/browse/nautilus/commit/?id=40be4b85f51fc7b192ef7421b2ede27954997cc8 --- libcaja-private/caja-icon-container.c | 48 ++++++++++++++++------------------- 1 file changed, 22 insertions(+), 26 deletions(-) diff --git a/libcaja-private/caja-icon-container.c b/libcaja-private/caja-icon-container.c index 50272ce7..4750169b 100644 --- a/libcaja-private/caja-icon-container.c +++ b/libcaja-private/caja-icon-container.c @@ -3981,7 +3981,7 @@ keyboard_arrow_key (CajaIconContainer *container, IsBetterIconFunction better_start, IsBetterIconFunction empty_start, IsBetterIconFunction better_destination, - IsBetterIconFunction better_destination_fallback_if_no_a11y, + IsBetterIconFunction better_destination_fallback, IsBetterIconFunction better_destination_fallback_fallback, IsBetterIconFunction better_destination_manual) { @@ -4038,16 +4038,12 @@ keyboard_arrow_key (CajaIconContainer *container, container->details->auto_layout ? better_destination : better_destination_manual, &data); - /* only wrap around to next/previous row/column if no a11y is used. - * Visually impaired people may be easily confused by this. - */ + /* Wrap around to next/previous row/column */ if (to == NULL && - better_destination_fallback_if_no_a11y != NULL && - ATK_IS_NO_OP_OBJECT (gtk_widget_get_accessible (GTK_WIDGET (container)))) - { + better_destination_fallback != NULL) { to = find_best_icon (container, from, - better_destination_fallback_if_no_a11y, + better_destination_fallback, &data); } @@ -4099,15 +4095,15 @@ static void keyboard_right (CajaIconContainer *container, GdkEventKey *event) { - IsBetterIconFunction no_a11y; + IsBetterIconFunction fallback; IsBetterIconFunction next_column_fallback; - no_a11y = NULL; + fallback = NULL; if (container->details->auto_layout && !caja_icon_container_is_layout_vertical (container) && !is_rectangle_selection_event (event)) { - no_a11y = next_row_leftmost; + fallback = next_row_leftmost; } next_column_fallback = NULL; @@ -4127,7 +4123,7 @@ keyboard_right (CajaIconContainer *container, caja_icon_container_is_layout_rtl (container) ? rightmost_in_top_row : leftmost_in_top_row, same_row_right_side_leftmost, - no_a11y, + fallback, next_column_fallback, closest_in_90_degrees); } @@ -4136,15 +4132,15 @@ static void keyboard_left (CajaIconContainer *container, GdkEventKey *event) { - IsBetterIconFunction no_a11y; + IsBetterIconFunction fallback; IsBetterIconFunction previous_column_fallback; - no_a11y = NULL; + fallback = NULL; if (container->details->auto_layout && !caja_icon_container_is_layout_vertical (container) && !is_rectangle_selection_event (event)) { - no_a11y = previous_row_rightmost; + fallback = previous_row_rightmost; } previous_column_fallback = NULL; @@ -4164,7 +4160,7 @@ keyboard_left (CajaIconContainer *container, caja_icon_container_is_layout_rtl (container) ? rightmost_in_top_row : leftmost_in_top_row, same_row_left_side_rightmost, - no_a11y, + fallback, previous_column_fallback, closest_in_90_degrees); } @@ -4173,21 +4169,21 @@ static void keyboard_down (CajaIconContainer *container, GdkEventKey *event) { - IsBetterIconFunction no_a11y; + IsBetterIconFunction fallback; IsBetterIconFunction next_row_fallback; - no_a11y = NULL; + fallback = NULL; if (container->details->auto_layout && caja_icon_container_is_layout_vertical (container) && !is_rectangle_selection_event (event)) { if (gtk_widget_get_direction (GTK_WIDGET (container)) == GTK_TEXT_DIR_RTL) { - no_a11y = previous_column_highest; + fallback = previous_column_highest; } else { - no_a11y = next_column_highest; + fallback = next_column_highest; } } @@ -4214,7 +4210,7 @@ keyboard_down (CajaIconContainer *container, caja_icon_container_is_layout_rtl (container) ? rightmost_in_top_row : leftmost_in_top_row, same_column_below_highest, - no_a11y, + fallback, next_row_fallback, closest_in_90_degrees); } @@ -4223,20 +4219,20 @@ static void keyboard_up (CajaIconContainer *container, GdkEventKey *event) { - IsBetterIconFunction no_a11y; + IsBetterIconFunction fallback; - no_a11y = NULL; + fallback = NULL; if (container->details->auto_layout && caja_icon_container_is_layout_vertical (container) && !is_rectangle_selection_event (event)) { if (gtk_widget_get_direction (GTK_WIDGET (container)) == GTK_TEXT_DIR_RTL) { - no_a11y = next_column_bottommost; + fallback = next_column_bottommost; } else { - no_a11y = previous_column_lowest; + fallback = previous_column_lowest; } } @@ -4250,7 +4246,7 @@ keyboard_up (CajaIconContainer *container, caja_icon_container_is_layout_rtl (container) ? rightmost_in_top_row : leftmost_in_top_row, same_column_above_lowest, - no_a11y, + fallback, NULL, closest_in_90_degrees); } -- cgit v1.2.1