# HG changeset patch # User Jim Blandy # Date 730392158 0 # Node ID ac5e559a819aa20c9357ed360a9e3f344228ee22 # Parent 51be204d02a09b0c01f556766ffa7485a1ebefa6 * frame.c (Fselect_frame): Set Vlast_event_frame to Qnil after switching frames, to make sure we'll get a switch-frame event. (Vlast_event_frame): Add external declaration for this here. * frame.c (Fdelete_frame): If FRAME is a dead frame, return Qnil, not nothing. diff -r 51be204d02a0 -r ac5e559a819a src/frame.c --- a/src/frame.c Mon Feb 22 14:41:57 1993 +0000 +++ b/src/frame.c Mon Feb 22 14:42:38 1993 +0000 @@ -87,6 +87,8 @@ extern Lisp_Object Vminibuffer_list; extern Lisp_Object get_minibuffer (); + +extern Lisp_Object Vlast_event_frame; DEFUN ("framep", Fframep, Sframep, 1, 1, 0, "Return non-nil if OBJECT is a frame.\n\ @@ -390,6 +392,14 @@ #endif choose_minibuf_frame (); + /* We want to make sure that the next event generates a frame-switch + event to the appropriate frame. This seems kludgey to me, but + before you take it out, make sure that evaluating something like + (select-window (frame-root-window (new-frame))) doesn't end up + with your typing being interpreted in the new frame instead of + the one you're actually typing in. */ + Vlast_event_frame = Qnil; + return frame; } @@ -602,7 +612,7 @@ } if (! FRAME_LIVE_P (f)) - return; + return Qnil; /* Are there any other frames besides this one? */ if (f == selected_frame && EQ (next_frame (frame, Qt), frame))