diff options
| author | Gerd Moellmann | 2001-04-17 12:02:53 +0000 |
|---|---|---|
| committer | Gerd Moellmann | 2001-04-17 12:02:53 +0000 |
| commit | a2125918a0fb047f247a51d9a46412ff24e2eafb (patch) | |
| tree | efa58596e9b73d2004d6b53f88cf64dc02f3d69e | |
| parent | 8f9ab4032faae52545128d5f9ac3992f6fad9af6 (diff) | |
| download | emacs-a2125918a0fb047f247a51d9a46412ff24e2eafb.tar.gz emacs-a2125918a0fb047f247a51d9a46412ff24e2eafb.zip | |
(delete-other-frames): Handle minibuffer-only frames.
| -rw-r--r-- | lisp/frame.el | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/lisp/frame.el b/lisp/frame.el index 299cfa52b01..3b3bf3eaaef 100644 --- a/lisp/frame.el +++ b/lisp/frame.el | |||
| @@ -1043,11 +1043,23 @@ should use `set-frame-height' instead." | |||
| 1043 | 1043 | ||
| 1044 | (defun delete-other-frames (&optional frame) | 1044 | (defun delete-other-frames (&optional frame) |
| 1045 | "Delete all frames except FRAME. | 1045 | "Delete all frames except FRAME. |
| 1046 | FRAME nil or omitted means delete all frames except the selected frame." | 1046 | If FRAME uses another frame's minibuffer, the minibuffer frame is |
| 1047 | left untouched. FRAME nil or omitted means use the selected frame." | ||
| 1047 | (interactive) | 1048 | (interactive) |
| 1048 | (unless frame | 1049 | (unless frame |
| 1049 | (setq frame (selected-frame))) | 1050 | (setq frame (selected-frame))) |
| 1050 | (mapcar 'delete-frame (delq frame (frame-list)))) | 1051 | (let* ((mini-frame (window-frame (minibuffer-window frame))) |
| 1052 | (frames (delq mini-frame (delq frame (frame-list))))) | ||
| 1053 | ;; Delete mon-minibuffer-only frames first, because `delete-frame' | ||
| 1054 | ;; signals an error when trying to delete a mini-frame that's | ||
| 1055 | ;; still in use by another frame. | ||
| 1056 | (dolist (frame frames) | ||
| 1057 | (unless (eq (frame-parameter frame 'minibuffer) 'only) | ||
| 1058 | (delete-frame frame))) | ||
| 1059 | ;; Delete minibuffer-only frames. | ||
| 1060 | (dolist (frame frames) | ||
| 1061 | (when (eq (frame-parameter frame 'minibuffer) 'only) | ||
| 1062 | (delete-frame frame))))) | ||
| 1051 | 1063 | ||
| 1052 | 1064 | ||
| 1053 | (make-obsolete 'screen-height 'frame-height) ;before 19.15 | 1065 | (make-obsolete 'screen-height 'frame-height) ;before 19.15 |