diff lisp/image-mode.el @ 109867:7b3550d93e3a

support for fit-width
author Joakim <joakim@localhost.localdomain>
date Sun, 27 Jun 2010 02:18:55 +0200
parents 73512e4aa257
children 2ea89e2c498f
line wrap: on
line diff
--- a/lisp/image-mode.el	Sat Jun 26 23:17:02 2010 +0200
+++ b/lisp/image-mode.el	Sun Jun 27 02:18:55 2010 +0200
@@ -579,12 +579,16 @@
          ((numberp image-transform-resize)
           (* image-transform-resize (cdr size)))
          ((eq image-transform-resize 'fit-height)
-          (nth 3 (window-inside-pixel-edges)))
-         )))
-       `(,@(if height (list :height height))
-         ,@(if (not (equal 0.0 image-transform-rotation))
-               (list :rotation image-transform-rotation))
-        )))
+          (- (nth 3 (window-inside-pixel-edges)) (nth 1 (window-inside-pixel-edges))))
+         (t nil)))
+       (width (if (eq image-transform-resize 'fit-width)
+                  (- (nth 2 (window-inside-pixel-edges)) (nth 0 (window-inside-pixel-edges))))))
+
+    `(,@(if height (list :height height))
+      ,@(if width (list :width width))
+      ,@(if (not (equal 0.0 image-transform-rotation))
+            (list :rotation image-transform-rotation))
+      )))
 
 (defun image-transform-set-scale (scale)
   (interactive "nscale:")
@@ -594,9 +598,13 @@
   (interactive)
   (image-transform-set-resize 'fit-height))
 
+(defun image-transform-fit-to-width ()
+  (interactive)
+  (image-transform-set-resize 'fit-width))
+
 (defun image-transform-set-resize (resize)
   (setq image-transform-resize resize)
-  (image-toggle-display-image))
+  (if (eq 'image-mode major-mode) (image-toggle-display-image)))
 
 (defun image-transform-set-rotation (rotation)
   (interactive "nrotation:")