X-Git-Url: https://cgit.sxemacs.org/?p=gnus;a=blobdiff_plain;f=lisp%2Fmm-view.el;h=82be361fce8e422b91deeeb18897eac8c67a2ee5;hp=1a2d940e2e5be967ad1613acbe76b0d81b57fb23;hb=96c1e956d124e84b6a1df29ba96c00b35fa1a8ae;hpb=c9a393eeb329a99695566342a9f03b8a30000898 diff --git a/lisp/mm-view.el b/lisp/mm-view.el index 1a2d940e2..82be361fc 100644 --- a/lisp/mm-view.el +++ b/lisp/mm-view.el @@ -31,6 +31,8 @@ (require 'mm-decode) (require 'smime) +(autoload 'gnus-completing-read "gnus-util") +(autoload 'gnus-window-inside-pixel-edges "gnus-ems") (autoload 'gnus-article-prepare-display "gnus-art") (autoload 'vcard-parse-string "vcard") (autoload 'vcard-format-string "vcard") @@ -75,6 +77,13 @@ :version "22.1" :group 'mime-display) +(defcustom mm-inline-large-images-proportion 0.9 + "Maximum proportion of large image resized when +`mm-inline-large-images' is set to resize." + :type 'float + :version "24.1" + :group 'mime-display) + ;;; Internal variables. ;;; @@ -84,7 +93,18 @@ (defun mm-inline-image-emacs (handle) (let ((b (point-marker)) (inhibit-read-only t)) - (put-image (mm-get-image handle) b) + (put-image + (let ((image (mm-get-image handle))) + (if (eq mm-inline-large-images 'resize) + (gnus-rescale-image image + (let ((edges (gnus-window-inside-pixel-edges + (get-buffer-window (current-buffer))))) + (cons (truncate (* mm-inline-large-images-proportion + (- (nth 2 edges) (nth 0 edges)))) + (truncate (* mm-inline-large-images-proportion + (- (nth 3 edges) (nth 1 edges))))))) + image)) + b) (insert "\n\n") (mm-handle-set-undisplayer handle @@ -676,11 +696,9 @@ (if (= (length smime-keys) 1) (cadar smime-keys) (smime-get-key-by-email - (completing-read - (concat "Decipher using key" - (if smime-keys (concat "(default " (caar smime-keys) "): ") - ": ")) - smime-keys nil nil nil nil (car-safe (car-safe smime-keys)))))) + (gnus-completing-read + "Decipher using key" + smime-keys nil nil nil (car-safe (car-safe smime-keys)))))) (goto-char (point-min)) (while (search-forward "\r\n" nil t) (replace-match "\n"))