From 61012f3efea3f06bb6dd38bed1988dab6aaad387 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Fri, 13 Feb 2015 20:43:06 -0500 Subject: [PATCH] file chooser: Don't open folders unexpectedly Folders that show up among search results were unexpectedly returned even for GTK_FILE_CHOOSER_ACTION_OPEN. Change things around so that we switch to the folder instead, which is the behavior we had in GTK+ 2.x. https://bugzilla.gnome.org/show_bug.cgi?id=744204 --- gtk/gtkfilechooserwidget.c | 24 +----------------------- 1 file changed, 1 insertion(+), 23 deletions(-) diff --git a/gtk/gtkfilechooserwidget.c b/gtk/gtkfilechooserwidget.c index 6b2ca17502..c300f8d129 100644 --- a/gtk/gtkfilechooserwidget.c +++ b/gtk/gtkfilechooserwidget.c @@ -527,7 +527,6 @@ static void search_stop_searching (GtkFileChooserWidget *impl, gboolean remove_query); static void search_clear_model (GtkFileChooserWidget *impl, gboolean remove_from_treeview); -static gboolean search_should_respond (GtkFileChooserWidget *impl); static GSList *search_get_selected_files (GtkFileChooserWidget *impl); static void search_entry_activate_cb (GtkFileChooserWidget *impl); static void search_entry_stop_cb (GtkFileChooserWidget *impl); @@ -5215,7 +5214,7 @@ switch_folder_foreach_cb (GtkTreeModel *model, closure = data; - closure->file = _gtk_file_system_model_get_file (closure->impl->priv->browse_files_model, iter); + closure->file = _gtk_file_system_model_get_file (GTK_FILE_SYSTEM_MODEL (model), iter); closure->num_selected++; } @@ -5782,12 +5781,6 @@ gtk_file_chooser_widget_should_respond (GtkFileChooserEmbed *chooser_embed) g_assert (priv->action >= GTK_FILE_CHOOSER_ACTION_OPEN && priv->action <= GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER); - if (priv->operation_mode == OPERATION_MODE_SEARCH) - { - retval = search_should_respond (impl); - goto out; - } - if (priv->operation_mode == OPERATION_MODE_RECENT) { if (priv->action == GTK_FILE_CHOOSER_ACTION_SAVE) @@ -6059,21 +6052,6 @@ search_get_selected_files (GtkFileChooserWidget *impl) return result; } -/* Called from ::should_respond(). We return whether there are selected files - * in the search list. - */ -static gboolean -search_should_respond (GtkFileChooserWidget *impl) -{ - GtkFileChooserWidgetPrivate *priv = impl->priv; - GtkTreeSelection *selection; - - g_assert (priv->operation_mode == OPERATION_MODE_SEARCH); - - selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (priv->browse_files_tree_view)); - return (gtk_tree_selection_count_selected_rows (selection) != 0); -} - /* Adds one hit from the search engine to the search_model */ static void search_add_hit (GtkFileChooserWidget *impl,