Mercurial > emacs
diff lisp/subr.el @ 83143:9fb10038ca55
Merged in changes from CVS trunk.
Patches applied:
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-353
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-354
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-355
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-356
Update from CVS
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-183
author | Karoly Lorentey <lorentey@elte.hu> |
---|---|
date | Mon, 31 May 2004 13:48:26 +0000 |
parents | 62cf3d6337a0 af9432138635 |
children | 2e868590c17b |
line wrap: on
line diff
--- a/lisp/subr.el Sun May 30 21:11:48 2004 +0000 +++ b/lisp/subr.el Mon May 31 13:48:26 2004 +0000 @@ -1796,10 +1796,21 @@ This does not alter the buffer list ordering. See also `with-temp-buffer'." (declare (indent 1) (debug t)) - `(let ((save-selected-window-window (selected-window))) + ;; Most of this code is a copy of save-selected-window. + `(let ((save-selected-window-window (selected-window)) + ;; It is necessary to save all of these, because calling + ;; select-window changes frame-selected-window for whatever + ;; frame that window is in. + (save-selected-window-alist + (mapcar (lambda (frame) (list frame (frame-selected-window frame))) + (frame-list)))) (unwind-protect (progn (select-window ,window 'norecord) ,@body) + (dolist (elt save-selected-window-alist) + (and (frame-live-p (car elt)) + (window-live-p (cadr elt)) + (set-frame-selected-window (car elt) (cadr elt)))) (if (window-live-p save-selected-window-window) (select-window save-selected-window-window 'norecord)))))