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)) {
|
else if (!PointerConfinedToScreen(dev)) {
|
||||||
NewCurrentScreen(dev, newScreen, x, y);
|
NewCurrentScreen(dev, newScreen, x, y);
|
||||||
}
|
}
|
||||||
|
if (*newScreen->CursorWarpedTo)
|
||||||
|
(*newScreen->CursorWarpedTo) (dev, newScreen, client,
|
||||||
|
dest, pSprite, x, y);
|
||||||
return Success;
|
return Success;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -233,6 +233,14 @@ typedef Bool (*SetCursorPositionProcPtr) (DeviceIntPtr /* pDev */ ,
|
||||||
int /*y */ ,
|
int /*y */ ,
|
||||||
Bool /*generateEvent */ );
|
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 (*CreateGCProcPtr) (GCPtr /*pGC */ );
|
||||||
|
|
||||||
typedef Bool (*CreateColormapProcPtr) (ColormapPtr /*pColormap */ );
|
typedef Bool (*CreateColormapProcPtr) (ColormapPtr /*pColormap */ );
|
||||||
|
@ -554,6 +562,7 @@ typedef struct _Screen {
|
||||||
UnrealizeCursorProcPtr UnrealizeCursor;
|
UnrealizeCursorProcPtr UnrealizeCursor;
|
||||||
RecolorCursorProcPtr RecolorCursor;
|
RecolorCursorProcPtr RecolorCursor;
|
||||||
SetCursorPositionProcPtr SetCursorPosition;
|
SetCursorPositionProcPtr SetCursorPosition;
|
||||||
|
CursorWarpedToProcPtr CursorWarpedTo;
|
||||||
|
|
||||||
/* GC procedures */
|
/* GC procedures */
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue