aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJan Djärv <[email protected]>2006-09-02 18:10:15 +0000
committerJan Djärv <[email protected]>2006-09-02 18:10:15 +0000
commit4f3097d8bcc4faa2abda36177161e3d6caf3b433 (patch)
treecca3fd3b2a7a9ad0cc3f75997f8f8288377ecb9f /src
parent655ea21ca38fc769588027b2e8097c1edda6f19d (diff)
* gtkutil.c (xg_get_file_with_chooser): Change file chooser message
for writing files. Call gtk_file_chooser_set_current_name to keep default filename.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog4
-rw-r--r--src/gtkutil.c27
2 files changed, 23 insertions, 8 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 76a292d43b..3e93d014a1 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,5 +1,9 @@
2006-09-02 Jan Dj,Ad(Brv <[email protected]>
+ * gtkutil.c (xg_get_file_with_chooser): Change file chooser message
+ for writing files. Call gtk_file_chooser_set_current_name to keep
+ default filename.
+
* minibuf.c (Finternal_complete_buffer): Move after DEFUN:s it calls
2006-09-02 Jindrich Makovicka <[email protected]> (tiny change)
diff --git a/src/gtkutil.c b/src/gtkutil.c
index 2a6ed9d152..172c7b94a6 100644
--- a/src/gtkutil.c
+++ b/src/gtkutil.c
@@ -1327,8 +1327,12 @@ xg_get_file_with_chooser (f, prompt, default_filename,
if (action != GTK_FILE_CHOOSER_ACTION_SAVE)
strcat (message, "\nType C-l to display a file name text entry box.\n");
strcat (message, "\nIf you don't like this file selector, customize "
- "use-file-dialog\nto turn it off, or type C-x C-f to visit files.");
-
+ "use-file-dialog\nto turn it off, or type ");
+ if (action != GTK_FILE_CHOOSER_ACTION_SAVE)
+ strcat (message, "C-x C-f to visit files.");
+ else
+ strcat (message, "C-x C-w to write files.");
+
wmessage = gtk_label_new (message);
gtk_widget_show (wmessage);
gtk_box_pack_start (GTK_BOX (wbox), wtoggle, FALSE, FALSE, 0);
@@ -1340,6 +1344,7 @@ xg_get_file_with_chooser (f, prompt, default_filename,
Lisp_Object file;
struct gcpro gcpro1;
GCPRO1 (file);
+ char *utf8_filename;
file = build_string (default_filename);
@@ -1347,14 +1352,20 @@ xg_get_file_with_chooser (f, prompt, default_filename,
an absolute name starting with /. */
if (default_filename[0] != '/')
file = Fexpand_file_name (file, Qnil);
-
- default_filename = SSDATA (file);
- if (Ffile_directory_p (file))
+
+ utf8_filename = SSDATA (ENCODE_UTF_8 (file));
+ if (! NILP (Ffile_directory_p (file)))
gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (filewin),
- default_filename);
+ utf8_filename);
else
- gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (filewin),
- default_filename);
+ {
+ char *cp = strrchr (utf8_filename, '/');
+ if (cp) ++cp;
+ else cp = utf8_filename;
+ gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (filewin),
+ utf8_filename);
+ gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (filewin), cp);
+ }
UNGCPRO;
}