1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-11-23 07:19:15 +00:00

(menu-bar-update-buffers): Reuse the entry for

list-buffers rather than making a new one each time.
This commit is contained in:
Richard M. Stallman 1995-04-09 07:32:17 +00:00
parent d133d8353a
commit 06ff75391c

View File

@ -429,6 +429,8 @@ A large number or nil slows down menu responsiveness.")
file)) file))
(car elt))) (car elt)))
(defvar menu-bar-buffers-menu-list-buffers-entry nil)
(defun menu-bar-update-buffers () (defun menu-bar-update-buffers ()
;; If user discards the Buffers item, play along. ;; If user discards the Buffers item, play along.
(and (lookup-key (current-global-map) [menu-bar buffer]) (and (lookup-key (current-global-map) [menu-bar buffer])
@ -486,6 +488,25 @@ A large number or nil slows down menu responsiveness.")
(setq maxlen (length (car (car alist)))))) (setq maxlen (length (car (car alist))))))
(setq tail (cdr tail))) (setq tail (cdr tail)))
(setq alist (nreverse alist)) (setq alist (nreverse alist))
;; Make the menu item for list-buffers
;; or reuse the one we already have.
;; The advantage in reusing one
;; is that it already has the keyboard equivalent
;; cached, so we save the time to look that up again.
(or menu-bar-buffers-menu-list-buffers-entry
(setq menu-bar-buffers-menu-list-buffers-entry
(cons
'list-buffers
(cons
""
'list-buffers))))
;; Update the item string for menu's new width.
(setcar (cdr menu-bar-buffers-menu-list-buffers-entry)
(concat (make-string (max (- (/ maxlen 2) 8) 0)
?\ )
"List All Buffers"))
;; Now make the actual list of items,
;; ending with the list-buffers item.
(nconc (mapcar '(lambda (pair) (nconc (mapcar '(lambda (pair)
;; This is somewhat risque, to use ;; This is somewhat risque, to use
;; the buffer name itself as the event ;; the buffer name itself as the event
@ -498,14 +519,7 @@ A large number or nil slows down menu responsiveness.")
(cons nil nil)) (cons nil nil))
'menu-bar-select-buffer)) 'menu-bar-select-buffer))
alist) alist)
(list (list menu-bar-buffers-menu-list-buffers-entry)))))
(cons
'list-buffers
(cons
(concat (make-string (max (- (/ maxlen 2) 8) 0)
?\ )
"List All Buffers")
'list-buffers)))))))
;; Make a Frames menu if we have more than one frame. ;; Make a Frames menu if we have more than one frame.