# HG changeset patch # User Jan Dj¸«£rv # Date 1135337653 0 # Node ID 5b8799d65159d193dbef5a0258b09928999ef613 # Parent 9c3504ae6060a98c7985200cfdb478f46a0af79e * xfns.c (Fx_uses_old_gtk_dialog): New function. * gtkutil.c (xg_uses_old_file_dialog): New function. (xg_get_file_name): Use xg_uses_old_file_dialog. * gtkutil.h: Declare xg_uses_old_file_dialog. diff -r 9c3504ae6060 -r 5b8799d65159 src/ChangeLog --- a/src/ChangeLog Fri Dec 23 08:40:31 2005 +0000 +++ b/src/ChangeLog Fri Dec 23 11:34:13 2005 +0000 @@ -1,3 +1,12 @@ +2005-12-23 Jan Dj,Ad(Brv + + * xfns.c (Fx_uses_old_gtk_dialog): New function. + + * gtkutil.c (xg_uses_old_file_dialog): New function. + (xg_get_file_name): Use xg_uses_old_file_dialog. + + * gtkutil.h: Declare xg_uses_old_file_dialog. + 2005-12-22 Richard M. Stallman * xmenu.c (xmenu_show): Call inhibit_garbage_collection. diff -r 9c3504ae6060 -r 5b8799d65159 src/gtkutil.c --- a/src/gtkutil.c Fri Dec 23 08:40:31 2005 +0000 +++ b/src/gtkutil.c Fri Dec 23 11:34:13 2005 +0000 @@ -1155,6 +1155,27 @@ /*********************************************************************** File dialog functions ***********************************************************************/ +/* Return non-zero if the old file selection dialog is being used. + Return zero if not. */ + +int +xg_uses_old_file_dialog () +{ +#ifdef HAVE_GTK_FILE_BOTH + extern int x_use_old_gtk_file_dialog; + return x_use_old_gtk_file_dialog; +#else /* ! HAVE_GTK_FILE_BOTH */ + +#ifdef HAVE_GTK_FILE_SELECTION_NEW + return 1; +#else + return 0; +#endif + +#endif /* ! HAVE_GTK_FILE_BOTH */ +} + + /* Function that is called when the file dialog pops down. W is the dialog widget, RESPONSE is the response code. USER_DATA is what we passed in to g_signal_connect (pointer to int). */ @@ -1343,7 +1364,6 @@ char *fn = 0; int filesel_done = 0; xg_get_file_func func; - extern int x_use_old_gtk_file_dialog; #if defined (HAVE_GTK_AND_PTHREAD) && defined (__SIGRTMIN) /* I really don't know why this is needed, but without this the GLIBC add on @@ -1354,7 +1374,7 @@ #ifdef HAVE_GTK_FILE_BOTH - if (x_use_old_gtk_file_dialog) + if (xg_uses_old_file_dialog ()) w = xg_get_file_with_selection (f, prompt, default_filename, mustmatch_p, only_dir_p, &func); else diff -r 9c3504ae6060 -r 5b8799d65159 src/gtkutil.h --- a/src/gtkutil.h Fri Dec 23 08:40:31 2005 +0000 +++ b/src/gtkutil.h Fri Dec 23 11:34:13 2005 +0000 @@ -132,6 +132,8 @@ extern widget_value *malloc_widget_value P_ ((void)); extern void free_widget_value P_ ((widget_value *)); +extern int xg_uses_old_file_dialog P_ ((void)); + extern char *xg_get_file_name P_ ((FRAME_PTR f, char *prompt, char *default_filename, diff -r 9c3504ae6060 -r 5b8799d65159 src/xfns.c --- a/src/xfns.c Fri Dec 23 08:40:31 2005 +0000 +++ b/src/xfns.c Fri Dec 23 11:34:13 2005 +0000 @@ -5236,8 +5236,27 @@ File selection dialog ***********************************************************************/ +DEFUN ("x-uses-old-gtk-dialog", Fx_uses_old_gtk_dialog, + Sx_uses_old_gtk_dialog, + 0, 0, 0, + doc: /* Return t if the old Gtk+ file selection dialog is used. */) + () +{ +#ifdef USE_GTK + extern int use_dialog_box; + extern int use_file_dialog; + + if (use_dialog_box + && use_file_dialog + && have_menus_p () + && xg_uses_old_file_dialog ()) + return Qt; +#endif + return Qnil; +} + + #ifdef USE_MOTIF - /* Callback for "OK" and "Cancel" on file selection dialog. */ static void @@ -5857,6 +5876,7 @@ last_show_tip_args = Qnil; staticpro (&last_show_tip_args); + defsubr (&Sx_uses_old_gtk_dialog); #if defined (USE_MOTIF) || defined (USE_GTK) defsubr (&Sx_file_dialog); #endif