diff options
| author | Katsumi Yamaoka | 2016-06-22 10:32:56 +0000 |
|---|---|---|
| committer | Katsumi Yamaoka | 2016-06-22 10:32:56 +0000 |
| commit | ea512a7c2cd30206dd509b193c9faaba25640180 (patch) | |
| tree | df9a4397f185a396058d933405fb5b71b9c844d9 | |
| parent | 829733104db073f8abd67765eae162e7360281fa (diff) | |
| download | emacs-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.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." | |||
| 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))))) |