Mercurial > emacs
changeset 11325:032239e758c4
(menu-bar-update-buffers): Reuse the entry for
list-buffers rather than making a new one each time.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Sun, 09 Apr 1995 07:32:17 +0000 |
parents | 3190c85854b6 |
children | 0d5ebc078c51 |
files | lisp/menu-bar.el |
diffstat | 1 files changed, 22 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/menu-bar.el Sun Apr 09 06:47:22 1995 +0000 +++ b/lisp/menu-bar.el Sun Apr 09 07:32:17 1995 +0000 @@ -429,6 +429,8 @@ 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 @@ (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 @@ (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.