summaryrefslogtreecommitdiff
path: root/gtk/gtkfilechooserdefault.c
diff options
context:
space:
mode:
Diffstat (limited to 'gtk/gtkfilechooserdefault.c')
-rw-r--r--gtk/gtkfilechooserdefault.c19
1 files changed, 13 insertions, 6 deletions
diff --git a/gtk/gtkfilechooserdefault.c b/gtk/gtkfilechooserdefault.c
index f5860d5df1..667a0a5472 100644
--- a/gtk/gtkfilechooserdefault.c
+++ b/gtk/gtkfilechooserdefault.c
@@ -3757,7 +3757,8 @@ gtk_file_chooser_default_set_current_name (GtkFileChooser *chooser,
{
GtkFileChooserDefault *impl = GTK_FILE_CHOOSER_DEFAULT (chooser);
- g_return_if_fail (impl->action == GTK_FILE_CHOOSER_ACTION_SAVE);
+ g_return_if_fail (impl->action == GTK_FILE_CHOOSER_ACTION_SAVE
+ || impl->action == GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER);
gtk_entry_set_text (GTK_ENTRY (impl->save_file_name_entry), name);
}
@@ -4951,11 +4952,17 @@ update_from_entry (GtkFileChooserDefault *impl,
if (!info)
{
-#if 0
- if (impl->action == GTK_FILE_CHOOSER_ACTION_SAVE)
- return;
-#endif
- error_getting_info_dialog (impl, subfolder_path, error);
+ if (impl->action == GTK_FILE_CHOOSER_ACTION_SAVE
+ || impl->action == GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER)
+ {
+ if (!change_folder_and_display_error (impl, folder_path))
+ goto out;
+
+ gtk_file_chooser_default_set_current_name (GTK_FILE_CHOOSER (impl), file_part);
+ }
+ else
+ error_getting_info_dialog (impl, subfolder_path, error);
+
goto out;
}