summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
authorJuri Linkov <juri@linkov.net>2021-08-01 23:07:29 +0300
committerJuri Linkov <juri@linkov.net>2021-08-01 23:07:29 +0300
commit9f5946b6ff2780a95a85909cd61e74986f5acf8a (patch)
treeadb8aa7b750a331b43e69e2dc20e8cb4199ddc0d /lisp
parentee1887bf54e7091a382ad24691ce0f482c61d7ea (diff)
downloademacs-9f5946b6ff2780a95a85909cd61e74986f5acf8a.tar.gz
* lisp/help-mode.el (help-mode-context-menu): New function.
(help-mode): Use it.
Diffstat (limited to 'lisp')
-rw-r--r--lisp/help-mode.el30
1 files changed, 30 insertions, 0 deletions
diff --git a/lisp/help-mode.el b/lisp/help-mode.el
index 3976a9ac4e5..6a11fc1ed9b 100644
--- a/lisp/help-mode.el
+++ b/lisp/help-mode.el
@@ -72,6 +72,35 @@
["Customize" help-customize
:help "Customize variable or face"]))
+(defun help-mode-context-menu (menu)
+ (define-key menu [help-mode-separator] menu-bar-separator)
+ (let ((easy-menu (make-sparse-keymap "Help-Mode")))
+ (easy-menu-define nil easy-menu nil
+ '("Help-Mode"
+ ["Previous Topic" help-go-back
+ :help "Go back to previous topic in this help buffer"
+ :active help-xref-stack]
+ ["Next Topic" help-go-forward
+ :help "Go back to next topic in this help buffer"
+ :active help-xref-forward-stack]))
+ (dolist (item (reverse (lookup-key easy-menu [menu-bar help-mode])))
+ (when (consp item)
+ (define-key menu (vector (car item)) (cdr item)))))
+
+ (when (and
+ ;; First check if `help-fns--list-local-commands'
+ ;; used `where-is-internal' to call this function
+ ;; with wrong `last-input-event'.
+ (eq (current-buffer) (window-buffer (posn-window (event-start last-input-event))))
+ (mouse-posn-property (event-start last-input-event) 'mouse-face))
+ (define-key menu [help-mode-push-button]
+ '(menu-item "Follow Link" (lambda (event)
+ (interactive "e")
+ (push-button event))
+ :help "Follow the link at click")))
+
+ menu)
+
(defvar help-mode-tool-bar-map
(let ((map (make-sparse-keymap)))
(tool-bar-local-item "close" 'quit-window 'quit map
@@ -342,6 +371,7 @@ Commands:
\\{help-mode-map}"
(setq-local revert-buffer-function
#'help-mode-revert-buffer)
+ (add-hook 'context-menu-functions 'help-mode-context-menu 5 t)
(setq-local tool-bar-map
help-mode-tool-bar-map)
(setq-local help-mode--current-data nil)