# HG changeset patch # User Jan Dj¸«£rv # Date 1102406950 0 # Node ID 65f1b18b7f66ad142c0b3378c34787c2310893f3 # Parent b392b0c22a160f517d560e61f00f5f13e9b8d9e7 * gtkutil.c (xg_get_file_with_chooser): Handle local files only. Set current folder in file chooser if default_filename is a directory. diff -r b392b0c22a16 -r 65f1b18b7f66 src/ChangeLog --- a/src/ChangeLog Tue Dec 07 05:09:11 2004 +0000 +++ b/src/ChangeLog Tue Dec 07 08:09:10 2004 +0000 @@ -1,3 +1,9 @@ +2004-12-07 Jan Dj,Ad(Brv + + * gtkutil.c (xg_get_file_with_chooser): Handle local files only. + Set current folder in file chooser if default_filename is a + directory. + 2004-12-05 Stefan Monnier * regex.c (GET_UNSIGNED_NUMBER): Signal an error when reaching the end. diff -r b392b0c22a16 -r 65f1b18b7f66 src/gtkutil.c --- a/src/gtkutil.c Tue Dec 07 05:09:11 2004 +0000 +++ b/src/gtkutil.c Tue Dec 07 08:09:10 2004 +0000 @@ -1200,6 +1200,7 @@ GTK_STOCK_OPEN : GTK_STOCK_OK), GTK_RESPONSE_OK, NULL); + gtk_file_chooser_set_local_only (GTK_FILE_CHOOSER (filewin), TRUE); if (default_filename) { @@ -1207,16 +1208,20 @@ struct gcpro gcpro1; GCPRO1 (file); + file = build_string (default_filename); + /* 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); + file = Fexpand_file_name (file, Qnil); + + default_filename = SDATA (file); + if (Ffile_directory_p (file)) + gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (filewin), + default_filename); + else + gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (filewin), + default_filename); UNGCPRO; }