summaryrefslogtreecommitdiff
path: root/gtk/gtkfilechooserwidget.c
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2016-02-15 22:06:17 -0500
committerMatthias Clasen <mclasen@redhat.com>2016-02-15 22:06:17 -0500
commit8f71060ef9569fb476d53e190b2afd7c7d898a8a (patch)
treee7a72cb78b3279f48706e6b104306394ca99ad4f /gtk/gtkfilechooserwidget.c
parentab1906952e11a11737aec41e86ba81c050886845 (diff)
downloadgtk+-8f71060ef9569fb476d53e190b2afd7c7d898a8a.tar.gz
file chooser: Reload current dir when switching from search mode
The need for this was pointed out by Evangelos Foutras in https://bugzilla.gnome.org/show_bug.cgi?id=761757
Diffstat (limited to 'gtk/gtkfilechooserwidget.c')
-rw-r--r--gtk/gtkfilechooserwidget.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/gtk/gtkfilechooserwidget.c b/gtk/gtkfilechooserwidget.c
index 1364def2a5..c93c9a1565 100644
--- a/gtk/gtkfilechooserwidget.c
+++ b/gtk/gtkfilechooserwidget.c
@@ -593,6 +593,7 @@ static void clear_model_cache (GtkFileChooserWidget *impl,
gint column);
static void set_model_filter (GtkFileChooserWidget *impl,
GtkFileFilter *filter);
+static void switch_to_home_dir (GtkFileChooserWidget *impl);
@@ -2563,10 +2564,18 @@ static void
location_entry_changed_cb (GtkEditable *editable,
GtkFileChooserWidget *impl)
{
- if (impl->priv->operation_mode == OPERATION_MODE_SEARCH)
- operation_mode_set (impl, OPERATION_MODE_BROWSE);
+ GtkFileChooserWidgetPrivate *priv = impl->priv;
+
+ if (priv->operation_mode == OPERATION_MODE_SEARCH)
+ {
+ operation_mode_set (impl, OPERATION_MODE_BROWSE);
+ if (priv->current_folder)
+ change_folder_and_display_error (impl, priv->current_folder, FALSE);
+ else
+ switch_to_home_dir (impl);
+ }
- if (impl->priv->action != GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER)
+ if (priv->action != GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER)
reset_location_timeout (impl);
}