# HG changeset patch # User Richard M. Stallman # Date 841641191 0 # Node ID b19129a8c644bd7bf07a968436084b9b77a73f33 # Parent 5c9f298c98752e2bd97d50bf428d7ffda97005b7 (unshow_buffer): Clear last_selected_window slot, maybe. (Fset_window_buffer): Set last_selected_window slot. (Fselect_window): Set last_selected_window slot. (delete_all_subwindows): Maybe call unshow_buffer. diff -r 5c9f298c9875 -r b19129a8c644 src/window.c --- a/src/window.c Mon Sep 02 05:11:15 1996 +0000 +++ b/src/window.c Mon Sep 02 05:13:11 1996 +0000 @@ -692,6 +692,9 @@ if (XBUFFER (buf) != XMARKER (w->pointm)->buffer) abort (); + if (w == XWINDOW (XBUFFER (buf)->last_selected_window)) + XBUFFER (buf)->last_selected_window = Qnil; + #if 0 if (w == XWINDOW (selected_window) || ! EQ (buf, XWINDOW (selected_window)->buffer)) @@ -1842,6 +1845,10 @@ } w->buffer = buffer; + + if (EQ (window, selected_window)) + XBUFFER (w->buffer)->last_selected_window = window; + XSETFASTINT (w->window_end_pos, 0); w->window_end_valid = Qnil; XSETFASTINT (w->hscroll, 0); @@ -1918,6 +1925,8 @@ record_buffer (w->buffer); Fset_buffer (w->buffer); + XBUFFER (w->buffer)->last_selected_window = window; + /* Go to the point recorded in the window. This is important when the buffer is in more than one window. It also matters when @@ -3221,6 +3230,9 @@ w->height = w->buffer; /* See Fset_window_configuration for excuse. */ + if (!NILP (w->buffer)) + unshow_buffer (w); + /* We set all three of these fields to nil, to make sure that we can distinguish this dead window from any live window. Live leaf windows will have buffer set, and combination windows will have