diff options
author | Charles A. Roelli <charles@aurox.ch> | 2017-05-18 21:31:46 +0200 |
---|---|---|
committer | Alan Third <alan@idiocy.org> | 2017-05-21 00:09:41 +0100 |
commit | 7e5a8cdceb408077df78b1ea810b1f5d4657303d (patch) | |
tree | 0b8ec76811bc1e66aa3fbfa5ad594a3e6cbb302a /lisp/frame.el | |
parent | c969b3997168de2bbe781fbcb08b67b15eddc02d (diff) | |
download | emacs-7e5a8cdceb408077df78b1ea810b1f5d4657303d.tar.gz |
Fix macOS mouse movement
* lisp/frame.el (ns-set-mouse-absolute-pixel-position): New
function (Lisp).
(set-mouse-absolute-pixel-position): Change it to call
`ns-set-mouse-absolute-pixel-position' on macOS.
* src/nsfns.m (Fns_set_mouse_absolute_pixel_position): New
function.
* src/nsterm.h (NS_PARENT_WINDOW_TOP_POS): Use the primary
screen's height as a base for calculating global coordinates.
* src/nsterm.m (frame_set_mouse_pixel_position): Fix it in macOS.
* test/lisp/mouse-tests.el (bug26816-mouse-frame-movement): Test
movement of mouse relative to frame.
Diffstat (limited to 'lisp/frame.el')
-rw-r--r-- | lisp/frame.el | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/lisp/frame.el b/lisp/frame.el index 05db8cf6fd4..02871e0551d 100644 --- a/lisp/frame.el +++ b/lisp/frame.el @@ -1465,6 +1465,7 @@ position (0, 0) of the selected frame's terminal." (t (cons 0 0))))) +(declare-function ns-set-mouse-absolute-pixel-position "nsfns.m" (x y)) (declare-function w32-set-mouse-absolute-pixel-position "w32fns.c" (x y)) (declare-function x-set-mouse-absolute-pixel-position "xfns.c" (x y)) @@ -1474,6 +1475,8 @@ The coordinates X and Y are interpreted in pixels relative to a position (0, 0) of the selected frame's terminal." (let ((frame-type (framep-on-display))) (cond + ((eq frame-type 'ns) + (ns-set-mouse-absolute-pixel-position x y)) ((eq frame-type 'x) (x-set-mouse-absolute-pixel-position x y)) ((eq frame-type 'w32) |