(replace_buffer_in_all_windows): Don't change selected

window, even temporarily; that has undesirable side effects.
This commit is contained in:
Karl Heuer 1996-01-17 19:03:02 +00:00
parent e67aa67d52
commit 27abb84f2a

View file

@ -1635,25 +1635,14 @@ void
replace_buffer_in_all_windows (buffer)
Lisp_Object buffer;
{
#ifdef MULTI_KBOARD
Lisp_Object tail, frame;
#ifdef MULTI_FRAME
Lisp_Object old_selected;
old_selected = selected_window;
/* A single call to window_loop won't do the job
because it only considers frames on the current keyboard.
So loop manually over frames, and handle each one. */
FOR_EACH_FRAME (tail, frame)
{
Fselect_window (FRAME_SELECTED_WINDOW (XFRAME (frame)));
window_loop (UNSHOW_BUFFER, buffer, 0, frame);
}
if (!NILP (Fwindow_live_p (old_selected)))
Fselect_window (old_selected);
window_loop (UNSHOW_BUFFER, buffer, 0, frame);
#else
window_loop (UNSHOW_BUFFER, buffer, 0, Qt);
#endif