From: Lars Ingebrigtsen Date: Sun, 28 Jul 2019 14:48:15 +0000 (+0200) Subject: Scale images in iimage-mode X-Git-Tag: emacs-27.0.90~1817^2~49 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=b5dc6c63dae54c24e70f60e7d5daa35d52d9aff6;p=emacs.git Scale images in iimage-mode * lisp/iimage.el (iimage-mode-buffer): Scale images down to the width/height of the buffer (bug#23434). Also add `image-map' to the images so that they can be further scaled. --- diff --git a/lisp/iimage.el b/lisp/iimage.el index 39ee1fb805c..3b5006491aa 100644 --- a/lisp/iimage.el +++ b/lisp/iimage.el @@ -116,6 +116,7 @@ Examples of image filename patterns to match: (defun iimage-mode-buffer (arg) "Display images if ARG is non-nil, undisplay them otherwise." (let ((image-path (cons default-directory iimage-mode-image-search-path)) + (edges (window-inside-pixel-edges (get-buffer-window))) file) (with-silent-modifications (save-excursion @@ -128,10 +129,15 @@ Examples of image filename patterns to match: ;; remove them either (we may leave some of ours, and we ;; may remove other packages's display properties). (if arg - (add-text-properties (match-beginning 0) (match-end 0) - `(display ,(create-image file) - modification-hooks - (iimage-modification-hook))) + (add-text-properties + (match-beginning 0) (match-end 0) + `(display + ,(create-image file nil nil + :max-width (- (nth 2 edges) (nth 0 edges)) + :max-height (- (nth 3 edges) (nth 1 edges))) + keymap ,image-map + modification-hooks + (iimage-modification-hook))) (remove-text-properties (match-beginning 0) (match-end 0) '(display modification-hooks))))))))))