diff options
author | Katsumi Yamaoka <yamaoka@jpl.org> | 2016-06-22 10:32:56 +0000 |
---|---|---|
committer | Katsumi Yamaoka <yamaoka@jpl.org> | 2016-06-22 10:32:56 +0000 |
commit | ea512a7c2cd30206dd509b193c9faaba25640180 (patch) | |
tree | df9a4397f185a396058d933405fb5b71b9c844d9 /lisp/gnus/mm-decode.el | |
parent | 829733104db073f8abd67765eae162e7360281fa (diff) | |
download | emacs-ea512a7c2cd30206dd509b193c9faaba25640180.tar.gz |
* lisp/gnus/mm-decode.el (mm-convert-shr-links):
Mask keys that launch `widget-button-click' (bug#22157).
Diffstat (limited to 'lisp/gnus/mm-decode.el')
-rw-r--r-- | lisp/gnus/mm-decode.el | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/lisp/gnus/mm-decode.el b/lisp/gnus/mm-decode.el index 3ea63c74034..bb8e2038d26 100644 --- a/lisp/gnus/mm-decode.el +++ b/lisp/gnus/mm-decode.el @@ -1896,10 +1896,11 @@ If RECURSIVE, search recursively." (defvar shr-map) (autoload 'widget-convert-button "wid-edit") +(defvar widget-keymap) (defun mm-convert-shr-links () (let ((start (point-min)) - end) + end keymap) (while (and start (< start (point-max))) (when (setq start (text-property-not-all start (point-max) 'shr-url nil)) @@ -1907,9 +1908,16 @@ If RECURSIVE, search recursively." (widget-convert-button 'url-link start end :help-echo (get-text-property start 'help-echo) - :keymap shr-map + :keymap (setq keymap (copy-keymap shr-map)) (get-text-property start 'shr-url)) - (put-text-property start end 'local-map nil) + ;; Remove keymap that `shr-urlify' adds. + (put-text-property start end 'keymap nil) + ;; Mask keys that launch `widget-button-click'. + ;; Those bindings are provided by `widget-keymap' + ;; that is a parent of `gnus-article-mode-map'. + (dolist (key (where-is-internal #'widget-button-click widget-keymap)) + (unless (lookup-key keymap key) + (define-key keymap key #'ignore))) (dolist (overlay (overlays-at start)) (overlay-put overlay 'face nil)) (setq start end))))) |