From ea512a7c2cd30206dd509b193c9faaba25640180 Mon Sep 17 00:00:00 2001 From: Katsumi Yamaoka Date: Wed, 22 Jun 2016 10:32:56 +0000 Subject: [PATCH] * lisp/gnus/mm-decode.el (mm-convert-shr-links): Mask keys that launch `widget-button-click' (bug#22157). --- lisp/gnus/mm-decode.el | 14 +++++++++++--- 1 file 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))))) -- 2.39.2