summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevin Gallagher <Kevin.Gallagher@boeing.com>2012-06-19 15:05:44 +0800
committerChong Yidong <cyd@gnu.org>2012-06-19 15:05:44 +0800
commitb382031894a7b3ade1d9f9e28249e9262f12e54f (patch)
tree7276ff19332d111bd8f24d3d974857888086ce91
parentc6bf30222430f41fbb696e296f0f63f465eefc35 (diff)
downloademacs-b382031894a7b3ade1d9f9e28249e9262f12e54f.tar.gz
In EDT emulator, allow updating of menu-bar Buffers menu.
* lisp/emulation/edt.el (edt-default-menu-bar-update-buffers) (edt-user-menu-bar-update-buffers): New functions. (edt-default-emulation-setup, edt-user-emulation-setup): Use them.
-rw-r--r--lisp/ChangeLog6
-rw-r--r--lisp/emulation/edt.el24
2 files changed, 25 insertions, 5 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 71326e10748..e8332a701a8 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,9 @@
+2012-06-19 Kevin Gallagher <Kevin.Gallagher@boeing.com>
+
+ * emulation/edt.el (edt-default-menu-bar-update-buffers)
+ (edt-user-menu-bar-update-buffers): New functions.
+ (edt-default-emulation-setup, edt-user-emulation-setup): Use them.
+
2012-06-19 Chong Yidong <cyd@gnu.org>
* subr.el (with-selected-window): Preserve the selected window's
diff --git a/lisp/emulation/edt.el b/lisp/emulation/edt.el
index fbb2359ca1f..dbd13a01a8b 100644
--- a/lisp/emulation/edt.el
+++ b/lisp/emulation/edt.el
@@ -2071,6 +2071,20 @@ created."
(setq transient-mark-mode edt-orig-transient-mark-mode))
(message "Original key bindings restored; EDT Emulation disabled"))
+(defun edt-default-menu-bar-update-buffers ()
+ ;; Update edt-default-global-map with latest copy of
+ ;; `global-buffers-menu-map' each time `menu-bar-update-buffers'
+ ;; updates global-map.
+ (define-key edt-default-global-map [menu-bar buffer]
+ (cons "Buffers" global-buffers-menu-map)))
+
+(defun edt-user-menu-bar-update-buffers ()
+ ;; We need to update edt-user-global-map with latest copy of
+ ;; `global-buffers-menu-map' each time `menu-bar-update-buffers'
+ ;; updates global-map.
+ (define-key edt-user-global-map [menu-bar buffer]
+ (cons "Buffers" global-buffers-menu-map)))
+
(defun edt-default-emulation-setup (&optional user-setup)
"Setup emulation of DEC's EDT editor.
Optional argument USER-SETUP non-nil means called from function
@@ -2110,10 +2124,8 @@ Optional argument USER-SETUP non-nil means called from function
(progn
(fset 'edt-emulation-on (symbol-function 'edt-select-default-global-map))
(edt-select-default-global-map)))
- ;; We need to share `global-buffers-menu-map' with the saved global
- ;; keymap, because `menu-bar-update-buffers' directly changes it.
- (define-key (current-global-map) [menu-bar buffer]
- (cons "Buffers" global-buffers-menu-map)))
+ ;; Keep the menu bar Buffers menu up-to-date in edt-default-global-map.
+ (add-hook 'menu-bar-update-hook 'edt-default-menu-bar-update-buffers))
(defun edt-user-emulation-setup ()
"Setup user custom emulation of DEC's EDT editor."
@@ -2134,7 +2146,9 @@ Optional argument USER-SETUP non-nil means called from function
;; See Info node `edt' for more details, and sample edt-user.el file.
(if (fboundp 'edt-setup-user-bindings)
(edt-setup-user-bindings))
- (edt-select-user-global-map))
+ (edt-select-user-global-map)
+ ;; Keep the menu bar Buffers menu up-to-date in edt-user-global-map.
+ (add-hook 'menu-bar-update-hook 'edt-user-menu-bar-update-buffers))
(defun edt-select-default-global-map()
"Select default EDT emulation key bindings."