diff options
Diffstat (limited to 'lisp')
-rw-r--r-- | lisp/menu-bar.el | 12 |
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) |