summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
authorRichard M. Stallman <rms@gnu.org>1994-05-19 05:54:26 +0000
committerRichard M. Stallman <rms@gnu.org>1994-05-19 05:54:26 +0000
commitc91c739e64db76a4682df0bff1c5583ee2492d7c (patch)
tree8d272b041c11a4099867972052e38151168c536d /lisp
parent268466edbe1e807739cc6e1a9e07b5b9650c68fa (diff)
downloademacs-c91c739e64db76a4682df0bff1c5583ee2492d7c.tar.gz
emacs-c91c739e64db76a4682df0bff1c5583ee2492d7c.tar.bz2
emacs-c91c739e64db76a4682df0bff1c5583ee2492d7c.zip
(menu-bar-update-buffers): Record buffers' mod and
read-only flags, and recompute if they change.
Diffstat (limited to 'lisp')
-rw-r--r--lisp/menu-bar.el12
1 files changed, 10 insertions, 2 deletions
diff --git a/lisp/menu-bar.el b/lisp/menu-bar.el
index 8b33d7d08c3..c89a356b6af 100644
--- a/lisp/menu-bar.el
+++ b/lisp/menu-bar.el
@@ -264,11 +264,19 @@ A large number or nil slows down menu responsiveness.")
(defun menu-bar-update-buffers ()
(let ((buffers (buffer-list))
(frames (frame-list))
+ buffers-info
buffers-menu frames-menu)
- (if (and (equal buffers menu-bar-update-buffers-last-buffers)
+ (setq buffers-info
+ (mapcar (function (lambda (buffer)
+ (list buffer (buffer-modified-p buffer)
+ (save-excursion
+ (set-buffer buffer)
+ buffer-read-only))))
+ buffers))
+ (if (and (equal buffers-info menu-bar-update-buffers-last-buffers)
(equal frames menu-bar-update-buffers-last-frames))
nil
- (setq menu-bar-update-buffers-last-buffers buffers)
+ (setq menu-bar-update-buffers-last-buffers buffers-info)
(setq menu-bar-update-buffers-last-frames frames)
;; If requested, list only the N most recently selected buffers.
(if (and (integerp buffers-menu-max-size)