[gtk/wip/baedert/filechooser2: 9/10] filechooserwidget: Allow keynav from the treeview to the search entry
- From: Timm Bäder <baedert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/wip/baedert/filechooser2: 9/10] filechooserwidget: Allow keynav from the treeview to the search entry
- Date: Sun, 28 Apr 2019 10:35:07 +0000 (UTC)
commit b75bc8aa6439fa140fd539fa00b23140990b433b
Author: Timm Bäder <mail baedert org>
Date: Sun Apr 28 11:27:42 2019 +0200
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 @@
<signal name="query-tooltip"
handler="file_list_query_tooltip_cb" swapped="no"/>
<signal name="row-activated" handler="list_row_activated"
swapped="no"/>
<signal name="cursor-changed" handler="list_cursor_changed"
swapped="no"/>
+ <signal name="keynav-failed"
handler="browse_files_tree_view_keynav_failed_cb" />
<child internal-child="selection">
<object class="GtkTreeSelection" id="treeview-selection2">
<signal name="changed" handler="list_selection_changed"
swapped="no"/>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]