• Jonas Ådahl's avatar
    xwayland: Add pointer warp emulator · a6e85e63
    Jonas Ådahl authored
    Emulate pointer warps by locking the pointer and sending relative
    motion events instead of absolute. X will keep track of the "fake"
    pointer cursor position given the relative motion events, and the
    client warping the cursor will warp the faked cursor position.
    
    Various requirements need to be met for the pointer warp emulator to
    enable:
    
    The cursor must be invisible: since it would not be acceptable that a
    fake cursor position would be different from the visual representation
    of the cursor, emulation can only be done when there is no visual
    representation done by the Wayland compositor. Thus, for the emulator
    to enable, the cursor must be hidden, and would the cursor be displayed
    while the emulator is active, the emulator would be destroyed.
    
    The window that is warped within must be likely to have pointer focus.
    For example, warping outside of the window region will be ignored.
    
    The pointer warp emulator will disable itself once the fake cursor
    position leaves the window region, or the cursor is made visible.
    
    This makes various games depending on pointer warping (such as 3D
    first-person shooters and stategy games using click-to-drag-map like
    things) work.
    Signed-off-by: Jonas Ådahl's avatarJonas Ådahl <jadahl@gmail.com>
    a6e85e63
Name
Last commit
Last update
Xext Loading commit data...
Xi Loading commit data...
composite Loading commit data...
config Loading commit data...
damageext Loading commit data...
dbe Loading commit data...
dix Loading commit data...
doc Loading commit data...
dri3 Loading commit data...
exa Loading commit data...
fb Loading commit data...
glamor Loading commit data...
glx Loading commit data...
hw Loading commit data...
include Loading commit data...
m4 Loading commit data...
man Loading commit data...
mi Loading commit data...
miext Loading commit data...
os Loading commit data...
present Loading commit data...
pseudoramiX Loading commit data...
randr Loading commit data...
record Loading commit data...
render Loading commit data...
test Loading commit data...
xfixes Loading commit data...
xkb Loading commit data...
.dir-locals.el Loading commit data...
.gitignore Loading commit data...
COPYING Loading commit data...
Makefile.am Loading commit data...
README Loading commit data...
autogen.sh Loading commit data...
configure.ac Loading commit data...
devbook.am Loading commit data...
docbook.am Loading commit data...
fix-miregion Loading commit data...
fix-miregion-private Loading commit data...
fix-patch-whitespace Loading commit data...
fix-region Loading commit data...
manpages.am Loading commit data...
xorg-server.m4 Loading commit data...
xorg-server.pc.in Loading commit data...
xserver.ent.in Loading commit data...