dix: Introduce CursorWarpedTo vfunc in Screen
This new vfunc will be called, if set, after a client has issued a WarpPointer request. This is necessary for implementing pointer warp emulation in Xwayland. Signed-off-by: Jonas Ådahl <jadahl@gmail.com> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> Signed-off-by: Keith Packard <keithp@keithp.com>
This commit is contained in:
parent
3ef51c5c74
commit
daf48a3aba
|
@ -3609,6 +3609,9 @@ ProcWarpPointer(ClientPtr client)
|
|||
else if (!PointerConfinedToScreen(dev)) {
|
||||
NewCurrentScreen(dev, newScreen, x, y);
|
||||
}
|
||||
if (*newScreen->CursorWarpedTo)
|
||||
(*newScreen->CursorWarpedTo) (dev, newScreen, client,
|
||||
dest, pSprite, x, y);
|
||||
return Success;
|
||||
}
|
||||
|
||||
|
|
|
@ -233,6 +233,14 @@ typedef Bool (*SetCursorPositionProcPtr) (DeviceIntPtr /* pDev */ ,
|
|||
int /*y */ ,
|
||||
Bool /*generateEvent */ );
|
||||
|
||||
typedef void (*CursorWarpedToProcPtr) (DeviceIntPtr /* pDev */ ,
|
||||
ScreenPtr /*pScreen */ ,
|
||||
ClientPtr /*pClient */ ,
|
||||
WindowPtr /*pWindow */ ,
|
||||
SpritePtr /*pSprite */ ,
|
||||
int /*x */ ,
|
||||
int /*y */ );
|
||||
|
||||
typedef Bool (*CreateGCProcPtr) (GCPtr /*pGC */ );
|
||||
|
||||
typedef Bool (*CreateColormapProcPtr) (ColormapPtr /*pColormap */ );
|
||||
|
@ -554,6 +562,7 @@ typedef struct _Screen {
|
|||
UnrealizeCursorProcPtr UnrealizeCursor;
|
||||
RecolorCursorProcPtr RecolorCursor;
|
||||
SetCursorPositionProcPtr SetCursorPosition;
|
||||
CursorWarpedToProcPtr CursorWarpedTo;
|
||||
|
||||
/* GC procedures */
|
||||
|
||||
|
|
Loading…
Reference in New Issue