};
#ifdef HAVE_GTK_FILE_BOTH
-static int use_old_gtk_file_dialog;
+int use_old_gtk_file_dialog;
#endif
filewin = gtk_file_chooser_dialog_new (prompt, gwin, action,
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
(mustmatch_p || only_dir_p ?
- GTK_STOCK_OPEN : GTK_STOCK_SAVE),
+ GTK_STOCK_OPEN : GTK_STOCK_OK),
GTK_RESPONSE_OK,
NULL);
if (default_filename)
- gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (filewin),
- default_filename);
+ {
+ Lisp_Object file;
+ struct gcpro gcpro1;
+ GCPRO1 (file);
+
+ /* File chooser does not understand ~/... in the file name. It must be
+ an absolute name starting with /. */
+ if (default_filename[0] != '/')
+ {
+ file = Fexpand_file_name (build_string (default_filename), Qnil);
+ default_filename = SDATA (file);
+ }
+
+ gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (filewin),
+ default_filename);
+
+ UNGCPRO;
+ }
gtk_widget_show (filewin);
"gtk-key-theme-name",
"Emacs",
EMACS_CLASS);
-
-#ifdef HAVE_GTK_FILE_BOTH
- DEFVAR_BOOL ("use-old-gtk-file-dialog", &use_old_gtk_file_dialog,
- doc: /* *Non-nil means that the old GTK file selection dialog is used.
- If nil the new GTK file chooser is used instead. To turn off
- all file dialogs set the variable `use-file-dialog'. */);
- use_old_gtk_file_dialog = 0;
-#endif
}
#endif /* USE_GTK */