[packages/gtk+3] optional patch to restore old typeahead behavior in open dialog
atler
atler at pld-linux.org
Sun Dec 11 20:27:27 CET 2016
commit 3be571ffe11482b97f5f56cd6f8b3d6e55719acb
Author: Jan Palus <atler at pld-linux.org>
Date: Sun Dec 11 20:25:16 2016 +0100
optional patch to restore old typeahead behavior in open dialog
borrowed from Arch:
https://aur.archlinux.org/cgit/aur.git/tree/?h=gtk3-typeahead
gtk+3.spec | 5 ++++
typeahead.patch | 79 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 84 insertions(+)
---
diff --git a/gtk+3.spec b/gtk+3.spec
index b54d1d6..c3b2622 100644
--- a/gtk+3.spec
+++ b/gtk+3.spec
@@ -6,6 +6,7 @@
%bcond_without papi # PAPI print backend
%bcond_without broadway # Broadway target
%bcond_with mir # Mir target
+%bcond_with typeahead # Typeahead in open dialog
%bcond_without wayland # Wayland target
%bcond_without static_libs # static library build
@@ -25,6 +26,7 @@ Group: X11/Libraries
Source0: http://ftp.gnome.org/pub/GNOME/sources/gtk+/3.22/gtk+-%{version}.tar.xz
# Source0-md5: 55e0198f100db98f31d1b0f9dc403794
Patch0: %{name}-papi.patch
+Patch1: typeahead.patch
URL: http://www.gtk.org/
BuildRequires: at-spi2-atk-devel >= 2.6.0
BuildRequires: atk-devel >= 1:2.16.0
@@ -277,6 +279,9 @@ Moduł GTK+ do drukowania przez PAPI.
%prep
%setup -q -n gtk+-%{version}
%patch0 -p1
+%if %{with typeahead}
+%patch1 -p1
+%endif
# for packaging clean examples
# TODO: add am patch to do it like demos/gtk-demo via some configurable dir
diff --git a/typeahead.patch b/typeahead.patch
new file mode 100644
index 0000000..2f7bdf7
--- /dev/null
+++ b/typeahead.patch
@@ -0,0 +1,79 @@
+--- a/gtk/gtkfilechooserwidget.c
++++ a/gtk/gtkfilechooserwidget.c
+@@ -1391,6 +1391,9 @@
+ {
+ GtkFileChooserWidget *impl = (GtkFileChooserWidget *) widget;
+ GtkFileChooserWidgetPrivate *priv = impl->priv;
++ gtk_widget_grab_focus (priv->browse_files_tree_view);
++ gboolean ret;
++ g_signal_emit_by_name (priv->browse_files_tree_view, "key-press-event", event, &ret);
+
+ if (should_trigger_location_entry (impl, event))
+ {
+@@ -1401,12 +1404,6 @@
+ return TRUE;
+ }
+ }
+- else if (gtk_search_entry_handle_event (GTK_SEARCH_ENTRY (priv->search_entry), (GdkEvent *)event))
+- {
+- if (priv->operation_mode != OPERATION_MODE_SEARCH)
+- operation_mode_set (impl, OPERATION_MODE_SEARCH);
+- return TRUE;
+- }
+
+ if (GTK_WIDGET_CLASS (gtk_file_chooser_widget_parent_class)->key_press_event (widget, event))
+ return TRUE;
+@@ -2476,7 +2473,7 @@
+ {
+ GtkFileChooserWidgetPrivate *priv = impl->priv;
+
+- gtk_tree_view_set_search_column (GTK_TREE_VIEW (priv->browse_files_tree_view), -1);
++ gtk_tree_view_set_search_column (GTK_TREE_VIEW (priv->browse_files_tree_view), MODEL_COL_NAME);
+
+ gtk_tree_view_column_set_sort_column_id (priv->list_name_column, MODEL_COL_NAME);
+ gtk_tree_view_column_set_sort_column_id (priv->list_time_column, MODEL_COL_TIME);
+@@ -4388,6 +4385,7 @@
+ gtk_tree_view_set_model (GTK_TREE_VIEW (priv->browse_files_tree_view),
+ GTK_TREE_MODEL (priv->browse_files_model));
+ update_columns (impl, FALSE, _("Modified"));
++ gtk_tree_view_set_enable_search (GTK_TREE_VIEW (priv->browse_files_tree_view), TRUE);
+ file_list_set_sort_column_ids (impl);
+ set_sort_column (impl);
+ profile_msg (" gtk_tree_view_set_model end", NULL);
+@@ -7148,10 +7146,6 @@
+ {
+ GList *l, *files, *files_with_info, *infos;
+ GFile *file;
+- gboolean select = FALSE;
+-
+- if (gtk_tree_model_iter_n_children (GTK_TREE_MODEL (impl->priv->search_model), NULL) == 0)
+- select = TRUE;
+
+ files = NULL;
+ files_with_info = NULL;
+@@ -7179,8 +7173,6 @@
+ g_list_free_full (infos, g_object_unref);
+
+ gtk_stack_set_visible_child_name (GTK_STACK (impl->priv->browse_files_stack), "list");
+- if (select)
+- gtk_widget_grab_focus (impl->priv->browse_files_tree_view);
+ }
+
+ /* Callback used from GtkSearchEngine when the query is done running */
+@@ -7498,6 +7490,7 @@
+ gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (priv->recent_model),
+ GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID,
+ GTK_SORT_DESCENDING);
++ gtk_tree_view_set_enable_search (GTK_TREE_VIEW (priv->browse_files_tree_view), TRUE);
+ }
+
+ typedef struct
+@@ -7515,7 +7508,7 @@
+
+ gtk_tree_view_set_model (GTK_TREE_VIEW (priv->browse_files_tree_view),
+ GTK_TREE_MODEL (priv->recent_model));
+- gtk_tree_view_set_search_column (GTK_TREE_VIEW (priv->browse_files_tree_view), -1);
++ gtk_tree_view_set_search_column (GTK_TREE_VIEW (priv->browse_files_tree_view), MODEL_COL_NAME);
+
+ gtk_tree_view_column_set_sort_column_id (priv->list_name_column, -1);
+ gtk_tree_view_column_set_sort_column_id (priv->list_time_column, -1);
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/gtk+3.git/commitdiff/3be571ffe11482b97f5f56cd6f8b3d6e55719acb
More information about the pld-cvs-commit
mailing list