1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-04-27 16:51:06 -07:00

* mouse.el (mouse-drag-region-1): Handle the case where a

double-click event is bound to an arbitrary function.
This commit is contained in:
Chong Yidong 2005-10-14 13:15:05 +00:00
parent b6b5618c15
commit f28e9cbd37
2 changed files with 17 additions and 6 deletions

View file

@ -1,3 +1,8 @@
2005-10-14 Chong Yidong <cyd@stupidchicken.com>
* mouse.el (mouse-drag-region-1): Handle the case where a
double-click event is bound to an arbitrary function.
2005-10-14 David Ponce <david@dponce.com>
* recentf.el (recentf-track-opened-file)

View file

@ -958,12 +958,14 @@ at the same position."
(mouse-move-drag-overlay mouse-drag-overlay start-point end-point click-count))
(if (consp event)
(let ((fun (key-binding (vector (car event)))))
(let* ((fun (key-binding (vector (car event))))
(do-multi-click (and (> (event-click-count event) 0)
(functionp fun)
(not (eq fun 'mouse-set-point)))))
;; Run the binding of the terminating up-event, if possible.
;; In the case of a multiple click, it gives the wrong results,
;; because it would fail to set up a region.
(if (not (= (overlay-start mouse-drag-overlay)
(overlay-end mouse-drag-overlay)))
(if (and (not (= (overlay-start mouse-drag-overlay)
(overlay-end mouse-drag-overlay)))
(not do-multi-click))
(let* ((stop-point
(if (numberp (posn-point (event-end event)))
(posn-point (event-end event))
@ -996,8 +998,12 @@ at the same position."
(and (mark t) mark-active
(eq buffer (current-buffer))
(mouse-set-region-1))))
(delete-overlay mouse-drag-overlay)
;; Run the binding of the terminating up-event.
;; If a multiple click is not bound to mouse-set-point,
;; cancel the effects of mouse-move-drag-overlay to
;; avoid producing wrong results.
(if do-multi-click (goto-char start-point))
(delete-overlay mouse-drag-overlay)
(when (and (functionp fun)
(= start-hscroll (window-hscroll start-window))
;; Don't run the up-event handler if the