diff options
| author | Richard M. Stallman | 2002-12-23 17:57:12 +0000 |
|---|---|---|
| committer | Richard M. Stallman | 2002-12-23 17:57:12 +0000 |
| commit | 991ce473781bbd487165287265524df80811900f (patch) | |
| tree | 36b8eefc88362098fe4d1abf54caba343463c8ad | |
| parent | 7c3da01bf2920b59afbb682b26acdee42e280cf5 (diff) | |
| download | emacs-991ce473781bbd487165287265524df80811900f.tar.gz emacs-991ce473781bbd487165287265524df80811900f.zip | |
(save-selected-window): Save and restore selected windows of all frames.
| -rw-r--r-- | lisp/window.el | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/lisp/window.el b/lisp/window.el index 98d5f9963f1..bacd9161ea5 100644 --- a/lisp/window.el +++ b/lisp/window.el | |||
| @@ -31,11 +31,20 @@ | |||
| 31 | 31 | ||
| 32 | (defmacro save-selected-window (&rest body) | 32 | (defmacro save-selected-window (&rest body) |
| 33 | "Execute BODY, then select the window that was selected before BODY. | 33 | "Execute BODY, then select the window that was selected before BODY. |
| 34 | However, if that window has become dead, don't get an error, | 34 | Also restore the selected window of each frame as it was at the start |
| 35 | just refrain from switching to it." | 35 | of this construct. |
| 36 | `(let ((save-selected-window-window (selected-window))) | 36 | However, if a window has become dead, don't get an error, |
| 37 | just refrain from reselecting it." | ||
| 38 | `(let ((save-selected-window-window (selected-window)) | ||
| 39 | (save-selected-window-alist | ||
| 40 | (mapcar (lambda (frame) (list frame (frame-selected-window frame))) | ||
| 41 | (frame-list)))) | ||
| 37 | (unwind-protect | 42 | (unwind-protect |
| 38 | (progn ,@body) | 43 | (progn ,@body) |
| 44 | (dolist (elt save-selected-window-alist) | ||
| 45 | (and (frame-live-p (car elt)) | ||
| 46 | (window-live-p (cadr elt)) | ||
| 47 | (set-frame-selected-window (car elt) (cadr elt)))) | ||
| 39 | (if (window-live-p save-selected-window-window) | 48 | (if (window-live-p save-selected-window-window) |
| 40 | (select-window save-selected-window-window))))) | 49 | (select-window save-selected-window-window))))) |
| 41 | 50 | ||