Mercurial > emacs
changeset 44770:cdbaa6173481
(menu-bar-update-buffers): Don't use constant lists for command menu
entries, since the low-level menu code modifies them. Cache the
resulting list.
(menu-bar-buffers-menu-command-entries): New variable.
author | Miles Bader <miles@gnu.org> |
---|---|
date | Tue, 23 Apr 2002 08:34:57 +0000 |
parents | 4c83b2b4e1cd |
children | bfc2ca8083c8 |
files | lisp/menu-bar.el |
diffstat | 1 files changed, 23 insertions(+), 13 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/menu-bar.el Tue Apr 23 05:02:14 2002 +0000 +++ b/lisp/menu-bar.el Tue Apr 23 08:34:57 2002 +0000 @@ -1282,6 +1282,9 @@ file)) (car elt))) +;; Used to cache the menu entries for commands in the Buffers menu +(defvar menu-bar-buffers-menu-command-entries nil) + (defun menu-bar-update-buffers (&optional force) ;; If user discards the Buffers item, play along. (and (lookup-key (current-global-map) [menu-bar buffer]) @@ -1357,20 +1360,27 @@ `((frames-separator "--") (frames menu-item "Frames" ,frames-menu)))))) - ;; Add in some normal commands at the end of the menu + ;; Add in some normal commands at the end of the menu. We use + ;; the copy cached in `menu-bar-buffers-menu-command-entries' + ;; if it's been set already. Note that we can't use constant + ;; lists for the menu-entries, because the low-level menu-code + ;; modifies them. + (unless menu-bar-buffers-menu-command-entries + (setq menu-bar-buffers-menu-command-entries + (list '(command-separator "--") + (list 'select-named-buffer + 'menu-item + "Select Named Buffer..." + 'switch-to-buffer + :help "Prompt for a buffer name, and select that buffer in the current window") + (list 'list-all-buffers + 'menu-item + "List All Buffers" + 'list-buffers + :help "Pop up a window listing all emacs buffers" + )))) (setq buffers-menu - (nconc buffers-menu - '((command-separator "--") - (select-named-buffer - menu-item - "Select Named Buffer..." - switch-to-buffer - :help "Prompt for a buffer name, and select that buffer in the current window") - (list-all-buffers - menu-item - "List All Buffers" - list-buffers - :help "Pop up a window listing all emacs buffers")))) + (nconc buffers-menu menu-bar-buffers-menu-command-entries)) (setq buffers-menu (cons 'keymap (cons "Select Buffer" buffers-menu))) (define-key (current-global-map) [menu-bar buffer]