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))
(car elt)))
(defvar menu-bar-buffers-menu-list-buffers-entry nil)
(defun menu-bar-update-buffers ()
;; If user discards the Buffers item, play along.
(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 tail (cdr tail)))
(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)
;; This is somewhat risque, to use
;; the buffer name itself as the event
@ -498,14 +519,7 @@ A large number or nil slows down menu responsiveness.")
(cons nil nil))
'menu-bar-select-buffer))
alist)
(list
(cons
'list-buffers
(cons
(concat (make-string (max (- (/ maxlen 2) 8) 0)
?\ )
"List All Buffers")
'list-buffers)))))))
(list menu-bar-buffers-menu-list-buffers-entry)))))
;; Make a Frames menu if we have more than one frame.