From b393528900a561200b14bd3c75d63f3bca1992ef Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jan=20Dj=C3=A4rv?= Date: Sat, 13 Nov 2004 23:29:11 +0000 Subject: [PATCH] * 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. --- src/ChangeLog | 12 ++++++++++++ src/xmenu.c | 19 ++++++++++++++++++- src/xterm.h | 3 +++ 3 files changed, 33 insertions(+), 1 deletion(-) diff --git a/src/ChangeLog b/src/ChangeLog index 3a8260b0584..1544baf53c6 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,15 @@ +2004-11-14 Jan Dj,Ad(Brv + + * 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 * gtkutil.c (xg_file_sel_ok, xg_file_sel_cancel) diff --git a/src/xmenu.c b/src/xmenu.c index c8c40a47256..38f101ec260 100644 --- a/src/xmenu.c +++ b/src/xmenu.c @@ -1118,9 +1118,26 @@ on the left of the dialog box and all following items on the right. #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)); diff --git a/src/xterm.h b/src/xterm.h index 5dd3ecfdef7..0738f847563 100644 --- a/src/xterm.h +++ b/src/xterm.h @@ -1069,6 +1069,9 @@ extern void x_free_dpy_colors P_ ((Display *, Screen *, Colormap, /* 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 *)); -- 2.39.2