aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKatsumi Yamaoka2016-06-22 10:32:56 +0000
committerKatsumi Yamaoka2016-06-22 10:32:56 +0000
commitea512a7c2cd30206dd509b193c9faaba25640180 (patch)
treedf9a4397f185a396058d933405fb5b71b9c844d9
parent829733104db073f8abd67765eae162e7360281fa (diff)
downloademacs-ea512a7c2cd30206dd509b193c9faaba25640180.tar.gz
emacs-ea512a7c2cd30206dd509b193c9faaba25640180.zip
* lisp/gnus/mm-decode.el (mm-convert-shr-links):
Mask keys that launch `widget-button-click' (bug#22157).
-rw-r--r--lisp/gnus/mm-decode.el14
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."
1896(defvar shr-map) 1896(defvar shr-map)
1897 1897
1898(autoload 'widget-convert-button "wid-edit") 1898(autoload 'widget-convert-button "wid-edit")
1899(defvar widget-keymap)
1899 1900
1900(defun mm-convert-shr-links () 1901(defun mm-convert-shr-links ()
1901 (let ((start (point-min)) 1902 (let ((start (point-min))
1902 end) 1903 end keymap)
1903 (while (and start 1904 (while (and start
1904 (< start (point-max))) 1905 (< start (point-max)))
1905 (when (setq start (text-property-not-all start (point-max) 'shr-url nil)) 1906 (when (setq start (text-property-not-all start (point-max) 'shr-url nil))
@@ -1907,9 +1908,16 @@ If RECURSIVE, search recursively."
1907 (widget-convert-button 1908 (widget-convert-button
1908 'url-link start end 1909 'url-link start end
1909 :help-echo (get-text-property start 'help-echo) 1910 :help-echo (get-text-property start 'help-echo)
1910 :keymap shr-map 1911 :keymap (setq keymap (copy-keymap shr-map))
1911 (get-text-property start 'shr-url)) 1912 (get-text-property start 'shr-url))
1912 (put-text-property start end 'local-map nil) 1913 ;; Remove keymap that `shr-urlify' adds.
1914 (put-text-property start end 'keymap nil)
1915 ;; Mask keys that launch `widget-button-click'.
1916 ;; Those bindings are provided by `widget-keymap'
1917 ;; that is a parent of `gnus-article-mode-map'.
1918 (dolist (key (where-is-internal #'widget-button-click widget-keymap))
1919 (unless (lookup-key keymap key)
1920 (define-key keymap key #'ignore)))
1913 (dolist (overlay (overlays-at start)) 1921 (dolist (overlay (overlays-at start))
1914 (overlay-put overlay 'face nil)) 1922 (overlay-put overlay 'face nil))
1915 (setq start end))))) 1923 (setq start end)))))