From: Peter Münster Date: Wed, 11 Aug 2021 11:39:53 +0000 (+0200) Subject: Let image-dired-mouse-toggle-mark act on active region X-Git-Tag: emacs-28.0.90~1561 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=c56e395edf5babdbcc65fa7bdb9fb462c674f156;p=emacs.git 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. --- diff --git a/etc/NEWS b/etc/NEWS index 3560c9d34e8..ac1fd3421f9 100644 --- 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 "###". diff --git a/lisp/image-dired.el b/lisp/image-dired.el index 74985b9e56d..cef145e9c83 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."