+2012-07-25 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-07-21 Leo Liu <sdl.web@gmail.com>
* progmodes/cc-cmds.el (c-defun-name): Use
;; when setting point near the right fringe (but see below).
(automatic-hscrolling-saved automatic-hscrolling)
(automatic-hscrolling 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,
(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
(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