summaryrefslogtreecommitdiff
path: root/lisp/help.el
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2006-02-11 16:03:14 +0000
committerEli Zaretskii <eliz@gnu.org>2006-02-11 16:03:14 +0000
commit8ee320fc76cd5d425fdd1f16845a5486b0b8afcc (patch)
tree22671cc5444aa00c2dfea252e94eb52dadaecd30 /lisp/help.el
parentc54fb9ef13ca4850bc24fa70cd5973db2d401159 (diff)
downloademacs-8ee320fc76cd5d425fdd1f16845a5486b0b8afcc.tar.gz
(describe-key-briefly, describe-key): Populate yank-menu if empty.
Diffstat (limited to 'lisp/help.el')
-rw-r--r--lisp/help.el34
1 files changed, 28 insertions, 6 deletions
diff --git a/lisp/help.el b/lisp/help.el
index b010722bec0..bea404f5112 100644
--- a/lisp/help.el
+++ b/lisp/help.el
@@ -564,13 +564,24 @@ It can also be a number in which case the untranslated events from
the last key hit are used.
If KEY is a menu item or a tool-bar button that is disabled, this command
-temporarily enables it to allow clicking on disabled items and buttons."
+temporarily enables it to allow getting help on disabled items and buttons."
(interactive)
- (let ((enable-disabled-menus-and-buttons t))
+ (let ((enable-disabled-menus-and-buttons t)
+ (save-yank-menu))
(if key
;; Non-interactive invocation
(describe-key-briefly-internal key insert untranslated)
- (call-interactively 'describe-key-briefly-internal))))
+ ;; If yank-menu is empty, populate it temporarily, so that
+ ;; "Select and Paste" menu can generate a complete event
+ (if (null (cdr yank-menu))
+ (unwind-protect
+ (progn
+ (setq save-yank-menu (copy-sequence yank-menu))
+ (menu-bar-update-yank-menu "(any string)" nil)
+ (call-interactively 'describe-key-briefly-internal))
+ (progn (setq yank-menu (copy-sequence save-yank-menu))
+ (fset 'yank-menu (cons 'keymap yank-menu))))
+ (call-interactively 'describe-key-briefly-internal)))))
(defun describe-key-briefly-internal (key &optional insert untranslated)
"Print the name of the function KEY invokes. KEY is a string.
@@ -629,13 +640,24 @@ the last key sequence entered are used.
UP-EVENT is the up-event that was discarded by reading KEY, or nil.
If KEY is a menu item or a tool-bar button that is disabled, this command
-temporarily enables it to allow clicking on disabled items and buttons."
+temporarily enables it to allow getting help on disabled items and buttons."
(interactive)
- (let ((enable-disabled-menus-and-buttons t))
+ (let ((enable-disabled-menus-and-buttons t)
+ (save-yank-menu))
(if key
;; Non-interactive invocation
(describe-key-internal key untranslated up-event)
- (call-interactively 'describe-key-internal))))
+ ;; If yank-menu is empty, populate it temporarily, so that
+ ;; "Select and Paste" menu can generate a complete event
+ (if (null (cdr yank-menu))
+ (unwind-protect
+ (progn
+ (setq save-yank-menu (copy-sequence yank-menu))
+ (menu-bar-update-yank-menu "(any string)" nil)
+ (call-interactively 'describe-key-internal))
+ (progn (setq yank-menu (copy-sequence save-yank-menu))
+ (fset 'yank-menu (cons 'keymap yank-menu))))
+ (call-interactively 'describe-key-internal)))))
(defun describe-key-internal (key &optional untranslated up-event)
"Display documentation of the function invoked by KEY.