emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master d22cd6d: image-dired: Use an evenly spaced grid for thumbnails


From: Stefan Kangas
Subject: master d22cd6d: image-dired: Use an evenly spaced grid for thumbnails
Date: Tue, 26 Oct 2021 21:00:25 -0400 (EDT)

branch: master
commit d22cd6d4c6a88894facbad9130200e86de22dd8a
Author: Stefan Kangas <stefan@marxist.se>
Commit: Stefan Kangas <stefan@marxist.se>

    image-dired: Use an evenly spaced grid for thumbnails
    
    * lisp/image-dired.el (image-dired-line-up): Use an evenly spaced
    grid for thumbnails, even if image sizes differ.
---
 lisp/image-dired.el | 18 +++++++++++++-----
 1 file changed, 13 insertions(+), 5 deletions(-)

diff --git a/lisp/image-dired.el b/lisp/image-dired.el
index b7650ba..b54404b 100644
--- a/lisp/image-dired.el
+++ b/lisp/image-dired.el
@@ -1884,18 +1884,26 @@ See also `image-dired-line-up-dynamic'."
                   (not (eobp)))
         (delete-char 1)))
     (goto-char (point-min))
-    (let ((count 0))
+    (let ((seen 0)
+          (thumb-prev-pos 0)
+          (thumb-width-chars
+           (ceiling (/ (+ (* 2 image-dired-thumb-relief)
+                          (* 2 image-dired-thumb-margin)
+                          (image-dired-thumb-size 'width))
+                       (float (frame-char-width))))))
       (while (not (eobp))
         (forward-char)
         (if (= image-dired-thumbs-per-row 1)
             (insert "\n")
-          (insert " ")
-          (setq count (1+ count))
-          (when (and (= count (- image-dired-thumbs-per-row 1))
+          (cl-incf thumb-prev-pos thumb-width-chars)
+          (insert (propertize " " 'display `(space :align-to ,thumb-prev-pos)))
+          (cl-incf seen)
+          (when (and (= seen (- image-dired-thumbs-per-row 1))
                     (not (eobp)))
             (forward-char)
             (insert "\n")
-            (setq count 0)))))
+            (setq seen 0)
+            (setq thumb-prev-pos 0)))))
     (goto-char (point-min))))
 
 (defun image-dired-line-up-dynamic ()



reply via email to

[Prev in Thread] Current Thread [Next in Thread]