diff options
author | Chris Feng <chris.w.feng@gmail.com> | 2018-07-14T16·00+0800 |
---|---|---|
committer | Chris Feng <chris.w.feng@gmail.com> | 2018-07-14T16·00+0800 |
commit | 1364f80f09668a16358aa8f509266bae41d55685 (patch) | |
tree | 017977cac1e25c4d07385f737bd4af6987e9957d | |
parent | c1b6a296a8fd57f6364a674486f54cafdd5d6255 (diff) |
Add support for automatic cursor warping
* exwm-workspace.el (exwm-workspace-warp-cursor): New user option. (exwm-workspace-switch): Automatically warp cursor after workspace switch.
-rw-r--r-- | exwm-workspace.el | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/exwm-workspace.el b/exwm-workspace.el index 903172154720..935d9d14a256 100644 --- a/exwm-workspace.el +++ b/exwm-workspace.el @@ -47,6 +47,10 @@ deleted, moved, etc)." "Non-nil to show buffers on other workspaces." :type 'boolean) +(defcustom exwm-workspace-warp-cursor nil + "Non-nil to warp cursor automatically after workspace switch." + :type 'boolean) + (defcustom exwm-workspace-number 1 "Initial number of workspaces." :type 'integer) @@ -595,6 +599,17 @@ for internal use only." (make-instance 'xcb:ewmh:set-_NET_CURRENT_DESKTOP :window exwm--root :data index)) (xcb:flush exwm--connection)) + (when exwm-workspace-warp-cursor + (with-slots (win-x win-y) + (xcb:+request-unchecked+reply exwm--connection + (make-instance 'xcb:QueryPointer + :window (frame-parameter frame + 'exwm-outer-id))) + (when (or (> win-x (frame-pixel-width frame)) + (> win-y (frame-pixel-height))) + (set-mouse-position frame + (/ (frame-width frame) 2) + (/ (frame-height frame) 2))))) (when (frame-live-p old-frame) (with-selected-frame old-frame (run-hooks 'focus-out-hook))) |