(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.
This commit is contained in:
parent
8b621d39e2
commit
887d3c942f
2 changed files with 28 additions and 13 deletions
|
@ -1,5 +1,10 @@
|
|||
2002-04-23 Miles Bader <miles@gnu.org>
|
||||
|
||||
* 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
|
||||
|
|
|
@ -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]
|
||||
|
|
Loading…
Add table
Reference in a new issue