aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKarl Heuer1995-05-24 01:02:08 +0000
committerKarl Heuer1995-05-24 01:02:08 +0000
commit82a74107638f35cca4bbcea79f46daed8067a052 (patch)
treef0f2fd4611d55ac4ed01d2a5ce2345fa4d2b8c01
parentccc06dcce5bb60b53583bfe3f86a7a25617a53df (diff)
downloademacs-82a74107638f35cca4bbcea79f46daed8067a052.tar.gz
emacs-82a74107638f35cca4bbcea79f46daed8067a052.zip
(delete-frame-enabled-p): New subroutine.
Use frame-visible-p to reduce consing.
-rw-r--r--lisp/menu-bar.el19
1 files changed, 12 insertions, 7 deletions
diff --git a/lisp/menu-bar.el b/lisp/menu-bar.el
index 08c909170ac..a49370fd52e 100644
--- a/lisp/menu-bar.el
+++ b/lisp/menu-bar.el
@@ -355,15 +355,20 @@ Do the same for the keys of the same name."
355 (and (buffer-file-name) 355 (and (buffer-file-name)
356 (or (buffer-modified-p) 356 (or (buffer-modified-p)
357 (not (verify-visited-file-modtime (current-buffer))))))) 357 (not (verify-visited-file-modtime (current-buffer)))))))
358
358;; Permit deleting frame if it would leave a visible or iconified frame. 359;; Permit deleting frame if it would leave a visible or iconified frame.
359(put 'delete-frame 'menu-enable 360(put 'delete-frame 'menu-enable
360 '(let ((frames (frame-list)) 361 '(delete-frame-enabled-p))
361 (count 0)) 362
362 (while frames 363(defun delete-frame-enabled-p ()
363 (if (cdr (assq 'visibility (frame-parameters (car frames)))) 364 "Return non-nil if `delete-frame' should be enabled in the menu bar."
364 (setq count (1+ count))) 365 (let ((frames (frame-list))
365 (setq frames (cdr frames))) 366 (count 0))
366 (> count 1))) 367 (while frames
368 (if (frame-visible-p (car frames))
369 (setq count (1+ count)))
370 (setq frames (cdr frames)))
371 (> count 1)))
367 372
368(put 'advertised-undo 'menu-enable 373(put 'advertised-undo 'menu-enable
369 '(and (not (eq t buffer-undo-list)) 374 '(and (not (eq t buffer-undo-list))