]> git.eshelyaron.com Git - emacs.git/commitdiff
Let image-dired-mouse-toggle-mark act on active region
authorPeter Münster <pm@a16n.net>
Wed, 11 Aug 2021 11:39:53 +0000 (13:39 +0200)
committerLars Ingebrigtsen <larsi@gnus.org>
Wed, 11 Aug 2021 11:39:53 +0000 (13:39 +0200)
* lisp/image-dired.el (image-dired-mouse-toggle-mark): When region is
active, then toggle marks of all images within (bug#49987).
(image-dired-mouse-toggle-mark-1): Separated out into function.

etc/NEWS
lisp/image-dired.el

index 3560c9d34e82dfe61faf01ffe086032eb3598a53..ac1fd3421f989d89671ea9f596892fac9e2a885a 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -2398,6 +2398,9 @@ This command, called interactively, toggles the local value of
 
 ** Miscellaneous
 
+---
+*** 'image-dired-mouse-toggle-mark' now toggles files in the active region.
+
 ---
 *** 'shell-script-mode' now supports 'outline-minor-mode'.
 The outline headings have lines that start with "###".
index 74985b9e56d817c410400a6968c6886423fa380b..cef145e9c83e9c983b16b11014c64efe2fe40782 100644 (file)
@@ -2311,16 +2311,31 @@ non-nil."
       (image-dired-track-original-file))
   (image-dired-display-thumb-properties))
 
+(defun image-dired-mouse-toggle-mark-1 ()
+  "Toggle dired mark for current thumbnail.
+Track this in associated dired buffer if `image-dired-track-movement' is
+non-nil."
+  (when image-dired-track-movement
+    (image-dired-track-original-file))
+  (image-dired-toggle-mark-thumb-original-file))
+
 (defun image-dired-mouse-toggle-mark (event)
   "Use mouse EVENT to toggle dired mark for thumbnail.
+Toggle marks of all thumbnails in region, if it's active.
 Track this in associated dired buffer if `image-dired-track-movement' is
 non-nil."
   (interactive "e")
-  (mouse-set-point event)
-  (goto-char (posn-point (event-end event)))
-  (if image-dired-track-movement
-      (image-dired-track-original-file))
-  (image-dired-toggle-mark-thumb-original-file))
+  (if (use-region-p)
+      (let ((end (region-end)))
+        (save-excursion
+          (goto-char (region-beginning))
+          (while (<= (point) end)
+            (when (image-dired-image-at-point-p)
+              (image-dired-mouse-toggle-mark-1))
+            (forward-char))))
+    (mouse-set-point event)
+    (goto-char (posn-point (event-end event)))
+    (image-dired-mouse-toggle-mark-1)))
 
 (defun image-dired-dired-display-properties ()
   "Display properties for dired file in the echo area."