]> git.eshelyaron.com Git - emacs.git/commitdiff
(describe-key): Report effective and original binding
authorKim F. Storm <storm@cua.dk>
Fri, 17 Dec 2004 15:16:46 +0000 (15:16 +0000)
committerKim F. Storm <storm@cua.dk>
Fri, 17 Dec 2004 15:16:46 +0000 (15:16 +0000)
for mouse-1 when clicked on a link.
(describe-mode): Add follow-link property to "minor-mode" button.

lisp/help.el

index 992a9b85f4b7bcc4a1c1add0baf97a405cbfd10f..f5831c9ab3f78e61c45d8425e9ebfaf1fa6667ce 100644 (file)
@@ -614,17 +614,58 @@ the last key hit are used."
            (princ "\n   which is ")
            (describe-function-1 defn)
            (when up-event
-             (let ((defn (or (string-key-binding up-event) (key-binding up-event))))
+             (let ((ev (aref up-event 0))
+                   (descr (key-description up-event))
+                   (hdr "\n\n-------------- up event ---------------\n\n")
+                   defn
+                   mouse-1-tricky mouse-1-remapped)
+               (when (and (consp ev)
+                          (eq (car ev) 'mouse-1)
+                          (windowp window)
+                          mouse-1-click-follows-link
+                          (not (eq mouse-1-click-follows-link 'double))
+                          (with-current-buffer (window-buffer window)
+                            (mouse-on-link-p (posn-point (event-start ev)))))
+                 (setq mouse-1-tricky (integerp mouse-1-click-follows-link)
+                       mouse-1-remapped (or (not mouse-1-tricky)
+                                            (> mouse-1-click-follows-link 0)))
+                 (if mouse-1-remapped
+                     (setcar ev 'mouse-2)))
+               (setq defn (or (string-key-binding up-event) (key-binding up-event)))
                (unless (or (null defn) (integerp defn) (equal defn 'undefined))
-                 (princ "\n\n-------------- up event ---------------\n\n")
-                 (princ (key-description up-event))
+                 (princ (if mouse-1-tricky
+                            "\n\n----------------- up-event (short click) ----------------\n\n"
+                          hdr))
+                 (setq hdr nil)
+                 (princ descr)
                  (if (windowp window)
                      (princ " at that spot"))
+                 (if mouse-1-remapped
+                     (princ " is remapped to <mouse-2>\n  which" ))
                  (princ " runs the command ")
                  (prin1 defn)
                  (princ "\n   which is ")
-                 (describe-function-1 defn))))
-           (print-help-return-message)))))))
+                 (describe-function-1 defn))
+               (when mouse-1-tricky
+                 (setcar ev
+                         (if (> mouse-1-click-follows-link 0) 'mouse-1 'mouse-2))
+                 (setq defn (or (string-key-binding up-event) (key-binding up-event)))
+                 (unless (or (null defn) (integerp defn) (equal defn 'undefined))
+                   (princ (or hdr
+                              "\n\n----------------- up-event (long click) ----------------\n\n"))
+                   (princ "Pressing ")
+                   (princ descr)
+                   (if (windowp window)
+                       (princ " at that spot"))
+                   (princ (format " for longer than %d milli-seconds\n"
+                                  (abs mouse-1-click-follows-link)))
+                   (if (not mouse-1-remapped)
+                       (princ " remaps it to <mouse-2> which" ))
+                   (princ " runs the command ")
+                   (prin1 defn)
+                   (princ "\n   which is ")
+                   (describe-function-1 defn))))
+           (print-help-return-message))))))))
 
 \f
 (defun describe-mode (&optional buffer)
@@ -697,6 +738,7 @@ whose documentation describes the minor mode."
                (princ "  ")
                (insert-button pretty-minor-mode
                               'action (car help-button-cache)
+                              'follow-link t
                               'help-echo "mouse-2, RET: show full information")
                (princ (format " minor mode (%s):\n"
                               (if indicator