Mercurial > emacs
comparison src/keyboard.c @ 83123:ad01ab3c6f4d
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
author | Karoly Lorentey <lorentey@elte.hu> |
---|---|
date | Tue, 18 May 2004 19:12:15 +0000 |
parents | 30dd490f06f2 4771569ccabb |
children | 50b9a96c837c |
comparison
equal
deleted
inserted
replaced
83122:d895a49cccb9 | 83123:ad01ab3c6f4d |
---|---|
983 () | 983 () |
984 { | 984 { |
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 |
991 if (command_loop_level | 996 if (command_loop_level |
992 && current_buffer != XBUFFER (XWINDOW (selected_window)->buffer)) | 997 && current_buffer != XBUFFER (XWINDOW (selected_window)->buffer)) |
1279 { | 1284 { |
1280 #ifdef HAVE_X_WINDOWS | 1285 #ifdef HAVE_X_WINDOWS |
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 |
1287 DEFUN ("exit-recursive-edit", Fexit_recursive_edit, Sexit_recursive_edit, 0, 0, "", | 1298 DEFUN ("exit-recursive-edit", Fexit_recursive_edit, Sexit_recursive_edit, 0, 0, "", |
1288 doc: /* Exit from the innermost recursive edit or minibuffer. */) | 1299 doc: /* Exit from the innermost recursive edit or minibuffer. */) |
3962 #endif | 3973 #endif |
3963 #ifdef WINDOWSNT | 3974 #ifdef WINDOWSNT |
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 } |
3973 #endif | 3982 #endif |
3974 else if (event->kind == SAVE_SESSION_EVENT) | 3983 else if (event->kind == SAVE_SESSION_EVENT) |
11546 struct input_event *event; | 11555 struct input_event *event; |
11547 for (event = kbd_fetch_ptr; event != kbd_store_ptr; event++) | 11556 for (event = kbd_fetch_ptr; event != kbd_store_ptr; event++) |
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 } |
11556 } | 11568 } |
11557 } | 11569 } |