# HG changeset patch # User Jim Blandy # Date 716387475 0 # Node ID 5d315d54b8b489670e813f12df48f54b1b9056ab # Parent a43d532615065eeca6cfb981e8e0501a8cce3c40 * keyboard.c (kbd_buffer_get_event): When performing the FRAME_FOCUS_FRAME redirection, don't modify the frame field of the event; that fatally corrupts mouse click events. Instead, just perform the redirection on the value assigned to Vlast_event_frame. * keyboard.c (input_available_signal): Declare this to return SIGTYPE. diff -r a43d53261506 -r 5d315d54b8b4 src/keyboard.c --- a/src/keyboard.c Sun Sep 13 12:29:01 1992 +0000 +++ b/src/keyboard.c Sun Sep 13 12:31:15 1992 +0000 @@ -1587,13 +1587,10 @@ { if (kbd_fetch_ptr == kbd_buffer + KBD_BUFFER_SIZE) kbd_fetch_ptr = kbd_buffer; - /* Do the redirection specified by the focus_frame - member now, before we return this event. */ - kbd_fetch_ptr->frame - = XFRAME (FRAME_FOCUS_FRAME (kbd_fetch_ptr->frame)); #ifdef MULTI_FRAME - XSET (Vlast_event_frame, Lisp_Frame, kbd_fetch_ptr->frame); + XSET (Vlast_event_frame, Lisp_Frame, + XFRAME (FRAME_FOCUS_FRAME (kbd_fetch_ptr->frame))); #endif last_event_timestamp = kbd_fetch_ptr->timestamp; @@ -2212,6 +2209,7 @@ #ifdef SIGIO /* for entire page */ /* Note SIGIO has been undef'd if FIONREAD is missing. */ +SIGTYPE input_available_signal (signo) int signo; {