]> git.eshelyaron.com Git - emacs.git/commitdiff
Do not set mark on single mouse-1 clicks.
authorChong Yidong <cyd@gnu.org>
Wed, 13 Jun 2012 15:28:10 +0000 (23:28 +0800)
committerChong Yidong <cyd@gnu.org>
Wed, 13 Jun 2012 15:28:10 +0000 (23:28 +0800)
* mouse.el (mouse-drag-track): Do not set the mark if the user
releases the mouse without selecting anything.

Fixes: debbugs:11588
lisp/ChangeLog
lisp/mouse.el

index a016032e285cac2cf80f66bb0349b9d280c17877..845c666bc8b33981c3936fd3c786137e76e7b5e2 100644 (file)
@@ -1,3 +1,8 @@
+2012-06-13  Chong Yidong  <cyd@gnu.org>
+
+       * mouse.el (mouse-drag-track): Do not set the mark if the user
+       releases the mouse without selecting anything (Bug#11588).
+
 2012-06-13  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        * textmodes/tex-mode.el (latex-indent): Recognize tex-verbatim at EOB
index f40a0199525dd2d1a1891659e6b92f7a957550e4..fb2e67408bd49202b7fcdfe9ad9cf1e98049bf4b 100644 (file)
@@ -805,7 +805,7 @@ DO-MOUSE-DRAG-REGION-POST-PROCESS should only be used by
         ;; when setting point near the right fringe (but see below).
         (auto-hscroll-mode-saved auto-hscroll-mode)
         (auto-hscroll-mode nil)
-        event end end-point)
+        moved-off-start event end end-point)
 
     (setq mouse-selection-click-count click-count)
     ;; In case the down click is in the middle of some intangible text,
@@ -840,6 +840,9 @@ DO-MOUSE-DRAG-REGION-POST-PROCESS should only be used by
            (redisplay))
          (setq end (event-end event)
                end-point (posn-point end))
+         ;; Note whether the mouse has left the starting position.
+         (unless (eq end-point start-point)
+           (setq moved-off-start t))
          (if (and (eq (posn-window end) start-window)
                   (integer-or-marker-p end-point))
              (mouse--drag-set-mark-and-point start-point
@@ -880,11 +883,11 @@ DO-MOUSE-DRAG-REGION-POST-PROCESS should only be used by
                   (let (deactivate-mark)
                     (copy-region-as-kill (mark) (point)))))
 
-         ;; If point hasn't moved, run the binding of the
-         ;; terminating up-event.
-         (if do-multi-click
-             (goto-char start-point)
-           (deactivate-mark))
+         ;; Otherwise, run binding of terminating up-event.
+         (cond
+          (do-multi-click (goto-char start-point))
+          (moved-off-start (deactivate-mark))
+          (t (pop-mark)))
          (when (and (functionp fun)
                     (= start-hscroll (window-hscroll start-window))
                     ;; Don't run the up-event handler if the window