changeset 103319:ee8708a2ef16

(delete-other-frames): Only delete frames on the same terminal (bug#3442).
author Stefan Monnier <monnier@iro.umontreal.ca>
date Thu, 04 Jun 2009 14:46:23 +0000
parents e47b96db18de
children 8d8a82b45ba7
files lisp/ChangeLog lisp/frame.el
diffstat 2 files changed, 9 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Thu Jun 04 06:40:13 2009 +0000
+++ b/lisp/ChangeLog	Thu Jun 04 14:46:23 2009 +0000
@@ -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):
--- a/lisp/frame.el	Thu Jun 04 06:40:13 2009 +0000
+++ b/lisp/frame.el	Thu Jun 04 14:46:23 2009 +0000
@@ -1485,6 +1485,10 @@
     (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.