summaryrefslogtreecommitdiff
path: root/lisp/frame.el
diff options
context:
space:
mode:
authorRichard M. Stallman <rms@gnu.org>1994-09-29 04:48:59 +0000
committerRichard M. Stallman <rms@gnu.org>1994-09-29 04:48:59 +0000
commit924be53af1e716fabcec624b550631e1d926f792 (patch)
tree9b6cb4591f4e8c3a3b786e8087a71dc59f6aff6e /lisp/frame.el
parenta981e7fff1b1db748ce271c5585a864425ac41b2 (diff)
downloademacs-924be53af1e716fabcec624b550631e1d926f792.tar.gz
(handle-delete-frame): New function.
Diffstat (limited to 'lisp/frame.el')
-rw-r--r--lisp/frame.el15
1 files changed, 15 insertions, 0 deletions
diff --git a/lisp/frame.el b/lisp/frame.el
index f71a0a22e53..39cb483acc3 100644
--- a/lisp/frame.el
+++ b/lisp/frame.el
@@ -105,6 +105,21 @@ These supersede the values given in `default-frame-alist'.")
(frame-selected-window frame))))))
(setq special-display-function 'special-display-popup-frame)
+
+;; Handle delete-frame events from the X server.
+(defun handle-delete-frame (event)
+ (interactive "e")
+ (let ((frame (posn-window (event-start event)))
+ (i 0)
+ (tail (frame-list)))
+ (while tail
+ (and (frame-visible-p (car tail))
+ (not (eq (car tail) frame))
+ (setq i (1+ i)))
+ (setq tail (cdr tail)))
+ (if (> i 0)
+ (delete-frame frame t)
+ (kill-emacs))))
;;;; Arrangement of frames at startup