diff options
| author | Eli Zaretskii | 2015-06-30 18:59:21 +0300 |
|---|---|---|
| committer | Eli Zaretskii | 2015-06-30 18:59:21 +0300 |
| commit | edd09381c618125d8aa23c9414034fbeee176305 (patch) | |
| tree | 009641f2aad95cc9852b06b036a4e6a9f143be94 /lisp | |
| parent | 881c4790266c42805ac1b9a5f1bbe13d3dd23478 (diff) | |
| download | emacs-edd09381c618125d8aa23c9414034fbeee176305.tar.gz emacs-edd09381c618125d8aa23c9414034fbeee176305.zip | |
Don't block changes in mouse pointer inside 'track-mouse'
* etc/NEWS:
* doc/lispref/frames.texi (Mouse Tracking): Document the special
effect of setting 'track-mouse' to 'dragging'.
* lisp/textmodes/artist.el (artist-mouse-draw-continously):
* lisp/ruler-mode.el (ruler-mode-mouse-drag-any-column-iteration):
* lisp/mouse-drag.el (mouse-drag-throw):
* lisp/mouse.el (mouse-drag-line): Set 'track-mouse' to 'dragging'
to avoid changes in the shape of the mouse pointer.
* src/xdisp.c (define_frame_cursor1): Don't change the mouse
pointer shape when do_mouse_tracking has the value of 'dragging',
not just any non-nil value. (Bug#20934)
(syms_of_xdisp): DEFSYM 'dragging'.
Diffstat (limited to 'lisp')
| -rw-r--r-- | lisp/mouse-drag.el | 2 | ||||
| -rw-r--r-- | lisp/mouse.el | 6 | ||||
| -rw-r--r-- | lisp/ruler-mode.el | 2 | ||||
| -rw-r--r-- | lisp/textmodes/artist.el | 3 |
4 files changed, 11 insertions, 2 deletions
diff --git a/lisp/mouse-drag.el b/lisp/mouse-drag.el index 88838edaaed..945c305db7d 100644 --- a/lisp/mouse-drag.el +++ b/lisp/mouse-drag.el | |||
| @@ -222,6 +222,8 @@ To test this function, evaluate: | |||
| 222 | (col-scrolling-p (mouse-drag-should-do-col-scrolling))) | 222 | (col-scrolling-p (mouse-drag-should-do-col-scrolling))) |
| 223 | (select-window start-window) | 223 | (select-window start-window) |
| 224 | (track-mouse | 224 | (track-mouse |
| 225 | ;; Don't change the mouse pointer shape while we drag. | ||
| 226 | (setq track-mouse 'dragging) | ||
| 225 | (while (progn | 227 | (while (progn |
| 226 | (setq event (read-event) | 228 | (setq event (read-event) |
| 227 | end (event-end event) | 229 | end (event-end event) |
diff --git a/lisp/mouse.el b/lisp/mouse.el index 7854d32eb20..9bb00cb105e 100644 --- a/lisp/mouse.el +++ b/lisp/mouse.el | |||
| @@ -468,8 +468,10 @@ must be one of the symbols `header', `mode', or `vertical'." | |||
| 468 | (setq dragged t) | 468 | (setq dragged t) |
| 469 | (adjust-window-trailing-edge window growth nil t)) | 469 | (adjust-window-trailing-edge window growth nil t)) |
| 470 | (setq last-position position)))))) | 470 | (setq last-position position)))))) |
| 471 | ;; Start tracking. | 471 | ;; Start tracking. The special value 'dragging' signals the |
| 472 | (setq track-mouse t) | 472 | ;; display engine to freeze the mouse pointer shape for as long |
| 473 | ;; as we drag. | ||
| 474 | (setq track-mouse 'dragging) | ||
| 473 | ;; Loop reading events and sampling the position of the mouse. | 475 | ;; Loop reading events and sampling the position of the mouse. |
| 474 | (setq exitfun | 476 | (setq exitfun |
| 475 | (set-transient-map | 477 | (set-transient-map |
diff --git a/lisp/ruler-mode.el b/lisp/ruler-mode.el index f0b012ed2f1..4f68909ed4c 100644 --- a/lisp/ruler-mode.el +++ b/lisp/ruler-mode.el | |||
| @@ -437,6 +437,8 @@ the mouse has been clicked." | |||
| 437 | (let ((drags 0) | 437 | (let ((drags 0) |
| 438 | event) | 438 | event) |
| 439 | (track-mouse | 439 | (track-mouse |
| 440 | ;; Signal the display engine to freeze the mouse pointer shape. | ||
| 441 | (setq track-mouse 'dragging) | ||
| 440 | (while (mouse-movement-p (setq event (read-event))) | 442 | (while (mouse-movement-p (setq event (read-event))) |
| 441 | (setq drags (1+ drags)) | 443 | (setq drags (1+ drags)) |
| 442 | (when (eq window (posn-window (event-end event))) | 444 | (when (eq window (posn-window (event-end event))) |
diff --git a/lisp/textmodes/artist.el b/lisp/textmodes/artist.el index 14cf402a971..a29418e6f84 100644 --- a/lisp/textmodes/artist.el +++ b/lisp/textmodes/artist.el | |||
| @@ -4965,6 +4965,9 @@ The event, EV, is the mouse event." | |||
| 4965 | (artist-no-rb-set-point1 x1 y1)) | 4965 | (artist-no-rb-set-point1 x1 y1)) |
| 4966 | (unwind-protect | 4966 | (unwind-protect |
| 4967 | (track-mouse | 4967 | (track-mouse |
| 4968 | ;; We don't want flickering of mouse pointer shape while we | ||
| 4969 | ;; drag the mouse. | ||
| 4970 | (setq track-mouse 'dragging) | ||
| 4968 | (while (or (mouse-movement-p ev) | 4971 | (while (or (mouse-movement-p ev) |
| 4969 | (member 'down (event-modifiers ev))) | 4972 | (member 'down (event-modifiers ev))) |
| 4970 | (setq ev-start-pos (artist-coord-win-to-buf | 4973 | (setq ev-start-pos (artist-coord-win-to-buf |