From: Miles Bader Date: Tue, 23 Apr 2002 08:36:35 +0000 (+0000) Subject: (menu-bar-update-buffers): Don't use constant lists for command menu X-Git-Tag: ttn-vms-21-2-B4~15464 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=887d3c942fa3db9d6132c7b84cbe372d4d68e96b;p=emacs.git (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. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index a9c7da1ed7e..3c2442b9dba 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,10 @@ 2002-04-23 Miles Bader + * menu-bar.el (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. + * menu-bar.el (menu-bar-update-buffers): Add `Select Named Buffer'. Add separator line before commands Remove old crufty code that tried to line things up by adding diff --git a/lisp/menu-bar.el b/lisp/menu-bar.el index e7a6eed9877..c5765230f03 100644 --- a/lisp/menu-bar.el +++ b/lisp/menu-bar.el @@ -1282,6 +1282,9 @@ key (or menu-item)")) 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 @@ key (or menu-item)")) `((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]