Mercurial > emacs
changeset 58202:54c649507b74
* xfns.c (Fx_file_dialog): Call x_menu_in_use and x_menu_set_in_use.
Record unwind with clean_up_file_dialog.
* xterm.h: Declare x_menu_in_use, x_menu_set_in_use,
x_menu_wait_for_event.
* xmenu.c (x_menu_in_use, x_menu_set_in_use): New functions.
author | Jan Djärv <jan.h.d@swipnet.se> |
---|---|
date | Sat, 13 Nov 2004 23:29:11 +0000 |
parents | d433adb0e42c |
children | cd5849662239 |
files | src/ChangeLog src/xmenu.c src/xterm.h |
diffstat | 3 files changed, 33 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/ChangeLog Sat Nov 13 23:17:55 2004 +0000 +++ b/src/ChangeLog Sat Nov 13 23:29:11 2004 +0000 @@ -1,3 +1,15 @@ +2004-11-14 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> + + * gtkutil.c (pop_down_file_dialog): Add BLOCK_INPUT. + + * xfns.c (Fx_file_dialog): Call x_menu_in_use and x_menu_set_in_use. + Record unwind with clean_up_file_dialog. + + * xterm.h: Declare x_menu_in_use, x_menu_set_in_use, + x_menu_wait_for_event. + + * xmenu.c (x_menu_in_use, x_menu_set_in_use): New functions. + 2004-11-13 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> * gtkutil.c (xg_file_sel_ok, xg_file_sel_cancel)
--- a/src/xmenu.c Sat Nov 13 23:17:55 2004 +0000 +++ b/src/xmenu.c Sat Nov 13 23:29:11 2004 +0000 @@ -1118,9 +1118,26 @@ #ifndef MSDOS +/* Return non-zero if a dialog or popup menu is already popped up. */ + +int +x_menu_in_use () +{ + return ! NILP (menu_items_inuse); +} + +/* Set menu_items_inuse so no other popup menu or dialog is created. */ + +void +x_menu_set_in_use (in_use) + int in_use; +{ + menu_items_inuse = in_use ? Qt : Qnil; +} + /* Wait for an X event to arrive or for a timer to expire. */ -static void +void x_menu_wait_for_event (void *data) { extern EMACS_TIME timer_check P_ ((int));
--- a/src/xterm.h Sat Nov 13 23:17:55 2004 +0000 +++ b/src/xterm.h Sat Nov 13 23:29:11 2004 +0000 @@ -1069,6 +1069,9 @@ /* Defined in xmenu.c */ +extern int x_menu_in_use P_ ((void)); +extern void x_menu_set_in_use P_ ((int)); +extern void x_menu_wait_for_event P_ ((void *data)); extern void x_activate_menubar P_ ((struct frame *)); extern int popup_activated P_ ((void)); extern void initialize_frame_menubar P_ ((struct frame *));