diff options
author | Matthias Clasen <mclasen@redhat.com> | 2016-02-15 22:06:17 -0500 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2016-02-15 22:06:17 -0500 |
commit | 8f71060ef9569fb476d53e190b2afd7c7d898a8a (patch) | |
tree | e7a72cb78b3279f48706e6b104306394ca99ad4f /gtk/gtkfilechooserwidget.c | |
parent | ab1906952e11a11737aec41e86ba81c050886845 (diff) | |
download | gtk+-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.c | 15 |
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); } |