emacs-diffs
[Top][All Lists]
Advanced

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

master c56e395 1/2: Let image-dired-mouse-toggle-mark act on active regi


From: Lars Ingebrigtsen
Subject: master c56e395 1/2: Let image-dired-mouse-toggle-mark act on active region
Date: Wed, 11 Aug 2021 08:04:12 -0400 (EDT)

branch: master
commit c56e395edf5babdbcc65fa7bdb9fb462c674f156
Author: Peter Münster <pm@a16n.net>
Commit: Lars Ingebrigtsen <larsi@gnus.org>

    Let image-dired-mouse-toggle-mark act on active region
    
    * 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            |  3 +++
 lisp/image-dired.el | 25 ++++++++++++++++++++-----
 2 files changed, 23 insertions(+), 5 deletions(-)

diff --git a/etc/NEWS b/etc/NEWS
index 3560c9d..ac1fd34 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -2399,6 +2399,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 "###".
 
diff --git a/lisp/image-dired.el b/lisp/image-dired.el
index 74985b9e..cef145e 100644
--- a/lisp/image-dired.el
+++ b/lisp/image-dired.el
@@ -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."



reply via email to

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