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 }