From c896abde6825108d1dabd55a9fed39a982440d5e Mon Sep 17 00:00:00 2001 From: Sergiusz Bazanski Date: Fri, 06 Apr 2018 14:44:02 +0000 Subject: Allow re-enabling typeahead in GTK3 file chooser GTK3 changed the file chooser widget to search for files when typing, instead of selecting the closest matching file (typeahead). We introduce a 'typeahead' flag for gtk+:3, letting users re-enable the old behaviour if they so prefer. --- (limited to 'x11-libs/gtk+') diff --git a/x11-libs/gtk+/Manifest b/x11-libs/gtk+/Manifest index b1f140f..41d21d8 100644 --- a/x11-libs/gtk+/Manifest +++ b/x11-libs/gtk+/Manifest @@ -1,5 +1,6 @@ AUX gtk+-3.22.2-update-icon-cache.patch 5474 BLAKE2B fe374a5f50ffc69df0d09e5b50d8b5c22ec57eb8709d13270b53cc389f2a14a4fa145051e5c0d80e7eb0c9e6778a240fbd64e4299d36736500ca6695a1345b13 SHA512 46ac52f18c0e74f5e35101ef978d7708c42abb05985894b65e8a7f7a76f1934015ff35a912628a5ae2c6333916ffd00570aa19230108aabe3a20adc5e31d958e AUX gtk+-3.22.20-libcloudproviders-automagic.patch 1904 BLAKE2B ed4e774a5641a8e857ae63b83cd481479f3562de3471b5c662eb5b110e583a0a84e7defe272c2fdc6fba58649763b3e97a7e453f83e4693f40a051c8565de7b5 SHA512 3981e3d0dd9a7422b41918a6e426fe36715c6a80c7a46a241edbd1ea364381ac34fa0ae6240bc59980dd56bb816cead55dd4d29437ff288d78b90c139cb5807f +AUX gtk+-3.22.26-typeahead.patch 3389 BLAKE2B 097f5d0df65d64f287eb4846317b0eb3f6070f0dfc438f5ca1acaebc60104c6bec9b698b0b05551248312a98baffcde01e4e6424b6210593fab6747aebf2dbbc SHA512 2a50f553b820fda1d7ce2077b65e8a2c2dc2df5f84c5da5dff54b7d7ede6d57349b18489709269ba0466e1d76977997b53fd7be0817c03af47d53d7d0b3e6e7e AUX settings.ini 96 BLAKE2B dd0ffe58f3c702d0518e1ad59930a511f98fd1b6e7139b2b2293a3dc8b0419a63a14260ba75b30dc9197f0423a375c675b4f3b34d593ce12828192d18e539fbb SHA512 76eff45e3413ed7b2fb6bb557c363cd6d8a65ae505709cf5ce26d579470e38968d51e72615779f47fac2994937a3c64ac4143c6cbd2cf5a2db23a01bcd9b6418 DIST gtk+-3.22.26.tar.xz 18922136 BLAKE2B a1e43be24abe2bda8eb63f3794b191b152abb5717334f8f46fe3158eb7ec92d5413ed3ca0df2a1ad676deacee3e7ce5e737661ec5f5c911609d40d3b9379c4c4 SHA512 2fd3a4175168d37f243359bac5df84722a2830fe5b62f86b914ce39ff500f0361e412843922343dffef8bee8f1205799ff86dd3ae8ac419928f4fe977e0e946f -EBUILD gtk+-3.22.26.ebuild 6961 BLAKE2B f7efd4cd7ea7a91ed82a1eab888a3eb317a72e8c5d71adac4e5d231d69ca51298eb7c997c9da8db631f4c7ba46738e0b14b00d5cc56a3f2d773af95367a31f69 SHA512 8ef4e04588eff83a258b03241a0794c8f962077bd36bf2372f78dc70588ebd0a4d0ba3877338495d3bc977f9ba04d26fa7d24053a6b4368ff22a31704622eed1 +EBUILD gtk+-3.22.26.ebuild 7136 BLAKE2B e7ad4ab8fa276302fbd1abdd8fd91ddc7e5d80a2c109f021f78f4bcf86927f4aa7899fc89b541edad7b71c4e020ae94fb1a9ab9fdebe793f6c01139c9b7c8903 SHA512 38ab9f14824765a54c15cd899ba40f259cc1db125ab16abbc829b58713143488036050a9a3871128e1e0c5828f5679992884f0e2a6768daecf3f7b65155a85a3 diff --git a/x11-libs/gtk+/files/gtk+-3.22.26-typeahead.patch b/x11-libs/gtk+/files/gtk+-3.22.26-typeahead.patch new file mode 100644 index 0000000..ddfb5d3 --- a/dev/null +++ b/x11-libs/gtk+/files/gtk+-3.22.26-typeahead.patch @@ -0,0 +1,83 @@ +--- gtk+-3.22.26/gtk/gtkfilechooserwidget.c 2017-10-02 17:00:49.000000000 +0100 ++++ gtk+-3.22.26.patched/gtk/gtkfilechooserwidget.c 2018-04-06 15:25:11.964251341 +0100 +@@ -1391,6 +1391,12 @@ + GtkFileChooserWidget *impl = (GtkFileChooserWidget *) widget; + GtkFileChooserWidgetPrivate *priv = impl->priv; + ++ if (!event->is_modifier) { ++ 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)) + { + if (priv->action == GTK_FILE_CHOOSER_ACTION_OPEN || +@@ -1400,12 +1406,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; +@@ -2477,7 +2477,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); +@@ -4391,6 +4391,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); +@@ -7151,10 +7152,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; +@@ -7182,8 +7179,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 */ +@@ -7480,6 +7475,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 +@@ -7497,7 +7493,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); + diff --git a/x11-libs/gtk+/gtk+-3.22.26.ebuild b/x11-libs/gtk+/gtk+-3.22.26.ebuild index 0f2ed64..0e7061f 100644 --- a/x11-libs/gtk+/gtk+-3.22.26.ebuild +++ b/x11-libs/gtk+/gtk+-3.22.26.ebuild @@ -11,7 +11,7 @@ HOMEPAGE="https://www.gtk.org/" LICENSE="LGPL-2+" SLOT="3" -IUSE="aqua broadway cloudprint colord cups examples +introspection test vim-syntax wayland +X xinerama" +IUSE="aqua broadway cloudprint colord cups examples typeahead +introspection test vim-syntax wayland +X xinerama" REQUIRED_USE=" || ( aqua wayland X ) xinerama? ( X ) @@ -129,6 +129,12 @@ src_prepare() { # Fix broken autotools logic eapply "${FILESDIR}"/${PN}-3.22.20-libcloudproviders-automagic.patch + # Re-enable type-ahead in file select dialog instead of recursive file + # search. + if use typeahead; then + eapply "${FILESDIR}"/${PN}-3.22.26-typeahead.patch + fi + eautoreconf gnome2_src_prepare } -- cgit v0.9.0.2