diff options
| author | Karl Heuer | 1995-05-24 01:02:08 +0000 |
|---|---|---|
| committer | Karl Heuer | 1995-05-24 01:02:08 +0000 |
| commit | 82a74107638f35cca4bbcea79f46daed8067a052 (patch) | |
| tree | f0f2fd4611d55ac4ed01d2a5ce2345fa4d2b8c01 | |
| parent | ccc06dcce5bb60b53583bfe3f86a7a25617a53df (diff) | |
| download | emacs-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.el | 19 |
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)) |