[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/src/keyboard.c [lexbind]
From: |
Miles Bader |
Subject: |
[Emacs-diffs] Changes to emacs/src/keyboard.c [lexbind] |
Date: |
Tue, 06 Jul 2004 07:12:59 -0400 |
Index: emacs/src/keyboard.c
diff -c emacs/src/keyboard.c:1.681.2.8 emacs/src/keyboard.c:1.681.2.9
*** emacs/src/keyboard.c:1.681.2.8 Tue Apr 27 14:08:50 2004
--- emacs/src/keyboard.c Tue Jul 6 09:14:35 2004
***************
*** 996,1001 ****
--- 996,1006 ----
int count = SPECPDL_INDEX ();
Lisp_Object buffer;
+ /* If we enter while input is blocked, don't lock up here.
+ This may happen through the debugger during redisplay. */
+ if (INPUT_BLOCKED_P)
+ return Qnil;
+
command_loop_level++;
update_mode_lines = 1;
***************
*** 1294,1299 ****
--- 1299,1310 ----
if (display_hourglass_p)
cancel_hourglass ();
#endif
+
+ /* Unblock input if we enter with input blocked. This may happen if
+ redisplay traps e.g. during tool-bar update with input blocked. */
+ while (INPUT_BLOCKED_P)
+ UNBLOCK_INPUT;
+
return Fthrow (Qtop_level, Qnil);
}
***************
*** 3967,3975 ****
else if (event->kind == LANGUAGE_CHANGE_EVENT)
{
/* Make an event (language-change (FRAME CHARSET LCID)). */
! obj = Fcons (event->modifiers, Qnil);
! obj = Fcons (event->code, obj);
! obj = Fcons (event->frame_or_window, obj);
obj = Fcons (Qlanguage_change, Fcons (obj, Qnil));
kbd_fetch_ptr = event + 1;
}
--- 3978,3984 ----
else if (event->kind == LANGUAGE_CHANGE_EVENT)
{
/* Make an event (language-change (FRAME CHARSET LCID)). */
! obj = Fcons (event->frame_or_window, Qnil);
obj = Fcons (Qlanguage_change, Fcons (obj, Qnil));
kbd_fetch_ptr = event + 1;
}
***************
*** 11413,11420 ****
{
if (event == kbd_buffer + KBD_BUFFER_SIZE)
event = kbd_buffer;
! mark_object (event->x);
! mark_object (event->y);
mark_object (event->frame_or_window);
mark_object (event->arg);
}
--- 11422,11432 ----
{
if (event == kbd_buffer + KBD_BUFFER_SIZE)
event = kbd_buffer;
! if (event->kind != SELECTION_REQUEST_EVENT)
! {
! mark_object (event->x);
! mark_object (event->y);
! }
mark_object (event->frame_or_window);
mark_object (event->arg);
}
- [Emacs-diffs] Changes to emacs/src/keyboard.c [lexbind], Miles Bader, 2004/07/06
- [Emacs-diffs] Changes to emacs/src/keyboard.c [lexbind], Miles Bader, 2004/07/06
- [Emacs-diffs] Changes to emacs/src/keyboard.c [lexbind], Miles Bader, 2004/07/06
- [Emacs-diffs] Changes to emacs/src/keyboard.c [lexbind], Miles Bader, 2004/07/06
- [Emacs-diffs] Changes to emacs/src/keyboard.c [lexbind], Miles Bader, 2004/07/06
- [Emacs-diffs] Changes to emacs/src/keyboard.c [lexbind],
Miles Bader <=
- [Emacs-diffs] Changes to emacs/src/keyboard.c [lexbind], Miles Bader, 2004/07/08
- [Emacs-diffs] Changes to emacs/src/keyboard.c [lexbind], Miles Bader, 2004/07/16
- [Emacs-diffs] Changes to emacs/src/keyboard.c [lexbind], Miles Bader, 2004/07/23