]> git.eshelyaron.com Git - emacs.git/commitdiff
Tweak how use-region-p works with `use-empty-active-region'
authorDrew Adams <drew.adams@oracle.com>
Tue, 20 Sep 2022 15:11:47 +0000 (17:11 +0200)
committerLars Ingebrigtsen <larsi@gnus.org>
Tue, 20 Sep 2022 15:12:29 +0000 (17:12 +0200)
* lisp/simple.el (use-region-p): Don't report non-nil if the user
has just clicked mouse-1 without extending the region (bug#51874).

lisp/simple.el

index 1b9bf9fa6d8efe75817c45d9d9094bdbac6fd2c7..aed1547b15b4562effa56763b4d6056ca0904050 100644 (file)
@@ -6887,6 +6887,11 @@ The return value is t if Transient Mark mode is enabled and the
 mark is active; furthermore, if `use-empty-active-region' is nil,
 the region must not be empty.  Otherwise, the return value is nil.
 
+If `use-empty-active-region' is non-nil, there is one further
+caveat: If the user has used `mouse-1' to set point, but used the
+mouse to move point to a different character yet, this function
+returns nil.
+
 For some commands, it may be appropriate to ignore the value of
 `use-empty-active-region'; in that case, use `region-active-p'.
 
@@ -6894,8 +6899,10 @@ Also see the convenience functions `use-region-beginning' and
 `use-region-end', which may be handy when writing `interactive'
 specs."
   (and (region-active-p)
-       (or use-empty-active-region (> (region-end) (region-beginning)))
-       t))
+       (or (> (region-end) (region-beginning))
+           (and use-empty-active-region
+                (not (eq (car-safe last-input-event) 'down-mouse-1))
+                (not (mouse-movement-p last-input-event))))))
 
 (defun region-active-p ()
   "Return t if Transient Mark mode is enabled and the mark is active.