(replace_buffer_in_all_windows): Don't change selected
window, even temporarily; that has undesirable side effects.
This commit is contained in:
parent
e67aa67d52
commit
27abb84f2a
1 changed files with 2 additions and 13 deletions
15
src/window.c
15
src/window.c
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue