Commit 86e48436 authored by Richard M. Stallman's avatar Richard M. Stallman
Browse files

(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.
parent 0dc6f165
......@@ -692,6 +692,9 @@ unshow_buffer (w)
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 @@ BUFFER can be a buffer or buffer name.")
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 @@ before each command.")
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 @@ delete_all_subwindows (w)
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
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment