From b75bc8aa6439fa140fd539fa00b23140990b433b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Sun, 28 Apr 2019 11:27:42 +0200 Subject: [PATCH] filechooserwidget: Allow keynav from the treeview to the search entry --- gtk/gtkfilechooserwidget.c | 19 +++++++++++++++++++ gtk/ui/gtkfilechooserwidget.ui | 1 + 2 files changed, 20 insertions(+) diff --git a/gtk/gtkfilechooserwidget.c b/gtk/gtkfilechooserwidget.c index 81532d8164..efe6bae3eb 100644 --- a/gtk/gtkfilechooserwidget.c +++ b/gtk/gtkfilechooserwidget.c @@ -7673,6 +7673,24 @@ list_cursor_changed (GtkTreeView *list, check_preview_change (impl); } +static gboolean +browse_files_tree_view_keynav_failed_cb (GtkWidget *widget, + GtkDirectionType direction, + gpointer user_data) +{ + GtkFileChooserWidget *self = user_data; + GtkFileChooserWidgetPrivate *priv = gtk_file_chooser_widget_get_instance_private (self); + + if (direction == GTK_DIR_UP && priv->operation_mode == OPERATION_MODE_SEARCH) + { + gtk_widget_grab_focus (priv->search_entry); + + return TRUE; + } + + return FALSE; +} + /* Callback used when a row in the file list is activated */ static void list_row_activated (GtkTreeView *tree_view, @@ -8400,6 +8418,7 @@ gtk_file_chooser_widget_class_init (GtkFileChooserWidgetClass *class) gtk_widget_class_bind_template_callback (widget_class, file_list_drag_end_cb); gtk_widget_class_bind_template_callback (widget_class, list_selection_changed); gtk_widget_class_bind_template_callback (widget_class, list_cursor_changed); + gtk_widget_class_bind_template_callback (widget_class, browse_files_tree_view_keynav_failed_cb); gtk_widget_class_bind_template_callback (widget_class, filter_combo_changed); gtk_widget_class_bind_template_callback (widget_class, path_bar_clicked); gtk_widget_class_bind_template_callback (widget_class, places_sidebar_open_location_cb); diff --git a/gtk/ui/gtkfilechooserwidget.ui b/gtk/ui/gtkfilechooserwidget.ui index 9ea493cec9..09fab2a02e 100644 --- a/gtk/ui/gtkfilechooserwidget.ui +++ b/gtk/ui/gtkfilechooserwidget.ui @@ -168,6 +168,7 @@ +