Avoid using `set-mouse-position' to warp pointer

* exwm-workspace.el (exwm-workspace-switch): Warp pointer with the
WarpPointer request.
This commit is contained in:
Chris Feng 2018-08-12 00:00:00 +00:00
parent e6527227b3
commit 4d43e3119a

View file

@ -607,9 +607,18 @@ for internal use only."
'exwm-outer-id))) 'exwm-outer-id)))
(when (or (> win-x (frame-pixel-width frame)) (when (or (> win-x (frame-pixel-width frame))
(> win-y (frame-pixel-height))) (> win-y (frame-pixel-height)))
(set-mouse-position frame (xcb:+request exwm--connection
(/ (frame-width frame) 2) (make-instance 'xcb:WarpPointer
(/ (frame-height frame) 2))))) :src-window xcb:Window:None
:dst-window (frame-parameter frame
'exwm-outer-id)
:src-x 0
:src-y 0
:src-width 0
:src-height 0
:dst-x (/ (frame-pixel-width frame) 2)
:dst-y (/ (frame-pixel-height frame) 2)))
(xcb:flush exwm--connection))))
(when (frame-live-p old-frame) (when (frame-live-p old-frame)
(with-selected-frame old-frame (with-selected-frame old-frame
(run-hooks 'focus-out-hook))) (run-hooks 'focus-out-hook)))