aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorRichard M. Stallman1995-06-22 19:25:20 +0000
committerRichard M. Stallman1995-06-22 19:25:20 +0000
commit37a985474ff7a71a651092daa24eb15f29788740 (patch)
tree451eadcef9c2c3697d1e044c0084aaa63f65e989 /src
parent30c7e3b3fe37c9c6c8501ecdca2168c55e2843b4 (diff)
downloademacs-37a985474ff7a71a651092daa24eb15f29788740.tar.gz
emacs-37a985474ff7a71a651092daa24eb15f29788740.zip
(menu_item_enabled_p_1): Special handling for quit.
(set_frame_menubar): Inhibit quitting.
Diffstat (limited to 'src')
-rw-r--r--src/xmenu.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/xmenu.c b/src/xmenu.c
index fc7615e9fdd..f8d3b143ceb 100644
--- a/src/xmenu.c
+++ b/src/xmenu.c
@@ -435,6 +435,11 @@ static Lisp_Object
435menu_item_enabled_p_1 (arg) 435menu_item_enabled_p_1 (arg)
436 Lisp_Object arg; 436 Lisp_Object arg;
437{ 437{
438 /* If we got a quit from within the menu computation,
439 quit all the way out of it. This takes care of C-] in the debugger. */
440 if (CONSP (arg) && EQ (XCONS (arg)->car, Qquit))
441 Fsignal (Qquit, Qnil);
442
438 return Qnil; 443 return Qnil;
439} 444}
440 445
@@ -1495,9 +1500,12 @@ set_frame_menubar (f, first_time)
1495 int i; 1500 int i;
1496 int id; 1501 int id;
1497 int count; 1502 int count;
1503 int specpdl_count = specpdl_ptr - specpdl;
1498 1504
1499 count = inhibit_garbage_collection (); 1505 count = inhibit_garbage_collection ();
1500 1506
1507 specbind (Qinhibit_quit, Qt);
1508
1501 id = frame_vector_add_frame (f); 1509 id = frame_vector_add_frame (f);
1502 1510
1503 wv = malloc_widget_value (); 1511 wv = malloc_widget_value ();
@@ -1599,6 +1607,8 @@ set_frame_menubar (f, first_time)
1599 1607
1600 update_frame_menubar (f); 1608 update_frame_menubar (f);
1601 1609
1610 unbind_to (specpdl_count, Qnil);
1611
1602 UNBLOCK_INPUT; 1612 UNBLOCK_INPUT;
1603} 1613}
1604 1614