diff options
| author | Karoly Lorentey | 2004-05-18 19:12:15 +0000 |
|---|---|---|
| committer | Karoly Lorentey | 2004-05-18 19:12:15 +0000 |
| commit | c23670f81e059ebe645c88575f4ddfa67f26bf6b (patch) | |
| tree | 71667a6ceaa877ccf3953abedfa7b0fd5f0f5369 /src/keyboard.c | |
| parent | d9858e4f1889a61b216ae1f99053846362067ccc (diff) | |
| parent | a7f7f2540f02834ad128d0c9357a4dbd8222dff4 (diff) | |
| download | emacs-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.c | 22 |
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 | } |