aboutsummaryrefslogtreecommitdiffstats
path: root/src/keyboard.c
diff options
context:
space:
mode:
authorKaroly Lorentey2004-05-18 19:12:15 +0000
committerKaroly Lorentey2004-05-18 19:12:15 +0000
commitc23670f81e059ebe645c88575f4ddfa67f26bf6b (patch)
tree71667a6ceaa877ccf3953abedfa7b0fd5f0f5369 /src/keyboard.c
parentd9858e4f1889a61b216ae1f99053846362067ccc (diff)
parenta7f7f2540f02834ad128d0c9357a4dbd8222dff4 (diff)
downloademacs-c23670f81e059ebe645c88575f4ddfa67f26bf6b.tar.gz
emacs-c23670f81e059ebe645c88575f4ddfa67f26bf6b.zip
Merged in changes from CVS trunk.
Patches applied: * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-299 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-300 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-301 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-302 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-303 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-304 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-305 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-306 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-307 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-308 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-309 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-310 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-311 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-312 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-313 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-314 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-315 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-316 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-317 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-318 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-319 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-320 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-321 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-322 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-323 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-324 Update from CVS git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-163
Diffstat (limited to 'src/keyboard.c')
-rw-r--r--src/keyboard.c22
1 files changed, 17 insertions, 5 deletions
diff --git a/src/keyboard.c b/src/keyboard.c
index 2a1c1c89e87..75a049b5775 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -985,6 +985,11 @@ This function is called by the editor initialization to begin editing. */)
985 int count = SPECPDL_INDEX (); 985 int count = SPECPDL_INDEX ();
986 Lisp_Object buffer; 986 Lisp_Object buffer;
987 987
988 /* If we enter while input is blocked, don't lock up here.
989 This may happen through the debugger during redisplay. */
990 if (INPUT_BLOCKED_P)
991 return Qnil;
992
988 command_loop_level++; 993 command_loop_level++;
989 update_mode_lines = 1; 994 update_mode_lines = 1;
990 995
@@ -1281,6 +1286,12 @@ DEFUN ("top-level", Ftop_level, Stop_level, 0, 0, "",
1281 if (display_hourglass_p) 1286 if (display_hourglass_p)
1282 cancel_hourglass (); 1287 cancel_hourglass ();
1283#endif 1288#endif
1289
1290 /* Unblock input if we enter with input blocked. This may happen if
1291 redisplay traps e.g. during tool-bar update with input blocked. */
1292 while (INPUT_BLOCKED_P)
1293 UNBLOCK_INPUT;
1294
1284 return Fthrow (Qtop_level, Qnil); 1295 return Fthrow (Qtop_level, Qnil);
1285} 1296}
1286 1297
@@ -3964,9 +3975,7 @@ kbd_buffer_get_event (kbp, used_mouse_menu)
3964 else if (event->kind == LANGUAGE_CHANGE_EVENT) 3975 else if (event->kind == LANGUAGE_CHANGE_EVENT)
3965 { 3976 {
3966 /* Make an event (language-change (FRAME CHARSET LCID)). */ 3977 /* Make an event (language-change (FRAME CHARSET LCID)). */
3967 obj = Fcons (event->modifiers, Qnil); 3978 obj = Fcons (event->frame_or_window, Qnil);
3968 obj = Fcons (event->code, obj);
3969 obj = Fcons (event->frame_or_window, obj);
3970 obj = Fcons (Qlanguage_change, Fcons (obj, Qnil)); 3979 obj = Fcons (Qlanguage_change, Fcons (obj, Qnil));
3971 kbd_fetch_ptr = event + 1; 3980 kbd_fetch_ptr = event + 1;
3972 } 3981 }
@@ -11548,8 +11557,11 @@ mark_kboards ()
11548 { 11557 {
11549 if (event == kbd_buffer + KBD_BUFFER_SIZE) 11558 if (event == kbd_buffer + KBD_BUFFER_SIZE)
11550 event = kbd_buffer; 11559 event = kbd_buffer;
11551 mark_object (event->x); 11560 if (event->kind != SELECTION_REQUEST_EVENT)
11552 mark_object (event->y); 11561 {
11562 mark_object (event->x);
11563 mark_object (event->y);
11564 }
11553 mark_object (event->frame_or_window); 11565 mark_object (event->frame_or_window);
11554 mark_object (event->arg); 11566 mark_object (event->arg);
11555 } 11567 }