summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Monnier <monnier@iro.umontreal.ca>2009-06-04 14:46:23 +0000
committerStefan Monnier <monnier@iro.umontreal.ca>2009-06-04 14:46:23 +0000
commit5e5ae184f41162f3bc8fa5eb05833aaa54bd7ad7 (patch)
treec9bb5a9e0baf5bc85c8548740359b0d4f50ed4f4
parent8682defdaad3a4f0ef56e1187bab35ef4dfc5c24 (diff)
downloademacs-5e5ae184f41162f3bc8fa5eb05833aaa54bd7ad7.tar.gz
(delete-other-frames): Only delete frames on the
same terminal (bug#3442).
-rw-r--r--lisp/ChangeLog5
-rw-r--r--lisp/frame.el4
2 files changed, 9 insertions, 0 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 24308678387..d21902e9ef5 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,8 @@
+2009-06-04 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * frame.el (delete-other-frames): Only delete frames on the
+ same terminal (bug#3442).
+
2009-06-04 Glenn Morris <rgm@gnu.org>
* calendar/solar.el (solar-n-hemi-seasons, solar-s-hemi-seasons):
diff --git a/lisp/frame.el b/lisp/frame.el
index d39eb80d3dd..549fb8933d5 100644
--- a/lisp/frame.el
+++ b/lisp/frame.el
@@ -1485,6 +1485,10 @@ left untouched. FRAME nil or omitted means use the selected frame."
(setq frame (selected-frame)))
(let* ((mini-frame (window-frame (minibuffer-window frame)))
(frames (delq mini-frame (delq frame (frame-list)))))
+ ;; Only consider frames on the same terminal.
+ (dolist (frame (prog1 frames (setq frames nil)))
+ (if (eq (frame-terminal) (frame-terminal frame))
+ (push frame frames)))
;; Delete mon-minibuffer-only frames first, because `delete-frame'
;; signals an error when trying to delete a mini-frame that's
;; still in use by another frame.