From 999c35f47271f099e178ad2e2ea015509acbe633 Mon Sep 17 00:00:00 2001 From: Lars Magne Ingebrigtsen Date: Thu, 18 Sep 2014 20:34:59 +0200 Subject: [PATCH] Preserve the aspect ratio when fitting to width/height * image-mode.el (image-toggle-display-image): If we have a `fit-width' or a `fit-height', don't limit the size of the image to the window size, because that doesn't preserve the aspect ratio. --- lisp/ChangeLog | 7 +++++++ lisp/image-mode.el | 15 ++++++++++----- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index caeda7ae3e3..0a92a7ed4b9 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,10 @@ +2014-09-18 Lars Magne Ingebrigtsen + + * image-mode.el (image-toggle-display-image): If we have a + `fit-width' or a `fit-height', don't limit the size of the image + to the window size, because that doesn't preserve the aspect + ratio. + 2014-09-17 Reuben Thomas * progmodes/js.el: Add interpreter-mode-alist support for various diff --git a/lisp/image-mode.el b/lisp/image-mode.el index 492ac10d706..ee5a1e7906e 100644 --- a/lisp/image-mode.el +++ b/lisp/image-mode.el @@ -642,14 +642,19 @@ was inserted." (string-make-unibyte (buffer-substring-no-properties (point-min) (point-max))) filename)) - (edges (window-inside-pixel-edges - (get-buffer-window (current-buffer)))) + ;; If we have a `fit-width' or a `fit-height', don't limit + ;; the size of the image to the window size. + (edges (and (null image-transform-resize) + (window-inside-pixel-edges + (get-buffer-window (current-buffer))))) (type (if (fboundp 'imagemagick-types) 'imagemagick (image-type file-or-data nil data-p))) - (image (create-image file-or-data type data-p - :max-width (- (nth 2 edges) (nth 0 edges)) - :max-height (- (nth 3 edges) (nth 1 edges)))) + (image (if (not edges) + (create-image file-or-data type data-p) + (create-image file-or-data type data-p + :max-width (- (nth 2 edges) (nth 0 edges)) + :max-height (- (nth 3 edges) (nth 1 edges))))) (inhibit-read-only t) (buffer-undo-list t) (modified (buffer-modified-p)) -- 2.39.5