? gtk/chooser.log
Index: gtk/gtkfilechooser.h
===================================================================
RCS file: /cvs/gnome/gtk+/gtk/gtkfilechooser.h,v
retrieving revision 1.12
diff -u -r1.12 gtkfilechooser.h
--- gtk/gtkfilechooser.h	29 Feb 2004 06:35:14 -0000	1.12
+++ gtk/gtkfilechooser.h	5 Mar 2004 21:56:40 -0000
@@ -37,7 +37,8 @@
   GTK_FILE_CHOOSER_ACTION_OPEN,
   GTK_FILE_CHOOSER_ACTION_SAVE,
   GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER,
-  GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER
+  GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER,
+  GTK_FILE_CHOOSER_ACTION_SELECT_FILES_AND_FOLDERS
 } GtkFileChooserAction;
 
 GType gtk_file_chooser_get_type (void);
Index: gtk/gtkfilechooserdefault.c
===================================================================
RCS file: /cvs/gnome/gtk+/gtk/gtkfilechooserdefault.c,v
retrieving revision 1.113
diff -u -r1.113 gtkfilechooserdefault.c
--- gtk/gtkfilechooserdefault.c	5 Mar 2004 09:49:00 -0000	1.113
+++ gtk/gtkfilechooserdefault.c	5 Mar 2004 21:56:42 -0000
@@ -1613,7 +1613,8 @@
   else
     {
       g_assert (impl->action == GTK_FILE_CHOOSER_ACTION_OPEN
-		|| impl->action == GTK_FILE_CHOOSER_ACTION_SAVE);
+		|| impl->action == GTK_FILE_CHOOSER_ACTION_SAVE
+		|| impl->action == GTK_FILE_CHOOSER_ACTION_SELECT_FILES_AND_FOLDERS);
 
       closure.impl = impl;
       closure.empty = TRUE;
@@ -2394,7 +2395,8 @@
 	}
     }
   else if (impl->action == GTK_FILE_CHOOSER_ACTION_OPEN ||
-	   impl->action == GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER)
+	   impl->action == GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER ||
+	   impl->action == GTK_FILE_CHOOSER_ACTION_SELECT_FILES_AND_FOLDERS)
     {
       gtk_widget_hide (impl->save_widgets);
       gtk_widget_show (impl->browse_widgets);
@@ -2412,7 +2414,8 @@
       gtk_widget_show (impl->browse_files_swin);
     }
 
-  if (impl->action == GTK_FILE_CHOOSER_ACTION_OPEN)
+  if (impl->action == GTK_FILE_CHOOSER_ACTION_OPEN ||
+      impl->action == GTK_FILE_CHOOSER_ACTION_SELECT_FILES_AND_FOLDERS)
     gtk_widget_hide (impl->browse_new_folder_button);
   else
     gtk_widget_show (impl->browse_new_folder_button);
@@ -3599,7 +3602,8 @@
 	return all_files;
     }
   else if (impl->action == GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER
-	   || impl->action == GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER)
+	   || impl->action == GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER
+	   || impl->action == GTK_FILE_CHOOSER_ACTION_SELECT_FILES_AND_FOLDERS)
     /* There can be no files selected in folder mode since we don't show them,
      * anyway.
      */
@@ -4197,7 +4201,9 @@
   folder_path = _gtk_file_chooser_entry_get_current_folder (chooser_entry);
   file_part = _gtk_file_chooser_entry_get_file_part (chooser_entry);
 
-  if (impl->action == GTK_FILE_CHOOSER_ACTION_OPEN && !folder_path)
+  if ((impl->action == GTK_FILE_CHOOSER_ACTION_OPEN 
+       || impl->action ==   GTK_FILE_CHOOSER_ACTION_SELECT_FILES_AND_FOLDERS)
+      && !folder_path)
     {
       error_message_with_parent (parent,
 				 _("Cannot change to the folder you specified as it is an invalid path."));
