summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard M. Stallman <rms@gnu.org>1996-12-10 23:25:14 +0000
committerRichard M. Stallman <rms@gnu.org>1996-12-10 23:25:14 +0000
commit86b41f179243bf03c32943fc7558839c65721244 (patch)
tree44008e68c5809f849d9fa077b08d679531a68b90
parent0b01a6d80d6017c7b3fe950912ef772c82a94948 (diff)
downloademacs-86b41f179243bf03c32943fc7558839c65721244.tar.gz
(Vmenu_updating_frame): New variable.
(syms_of_xmenu): Set up Lisp var. (Fx_popup_menu, set_frame_menubar): Initialize it.
-rw-r--r--src/xmenu.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/xmenu.c b/src/xmenu.c
index cec9aa0d004..46b75cc1dbb 100644
--- a/src/xmenu.c
+++ b/src/xmenu.c
@@ -86,6 +86,8 @@ Boston, MA 02111-1307, USA. */
#define FALSE 0
#endif /* no TRUE */
+Lisp_Object Vmenu_updating_frame;
+
Lisp_Object Qdebug_on_next_call;
Lisp_Object Qmenu_alias;
@@ -856,7 +858,10 @@ cached information about equivalent key sequences.")
xpos += XINT (x);
ypos += XINT (y);
+
+ XSETFRAME (Vmenu_updating_frame, f);
}
+ Vmenu_updating_frame = Qnil;
#endif /* HAVE_MENUS */
title = Qnil;
@@ -1618,6 +1623,8 @@ set_frame_menubar (f, first_time, deep_p)
int i;
LWLIB_ID id;
+ XSETFRAME (Vmenu_updating_frame, f);
+
if (f->output_data.x->id == 0)
f->output_data.x->id = next_menubar_widget_id++;
id = f->output_data.x->id;
@@ -2708,6 +2715,11 @@ syms_of_xmenu ()
Qdebug_on_next_call = intern ("debug-on-next-call");
staticpro (&Qdebug_on_next_call);
+ DEFVAR_LISP ("menu-updating-frame", &Vmenu_updating_frame,
+ "Frame for which we are updating a menu.\n\
+The enable predicate for a menu command should check this variable.");
+ Vmenu_updating_frame = Qnil;
+
#ifdef USE_X_TOOLKIT
widget_id_tick = (1<<16);
next_menubar_widget_id = 1;