(!1614) xfixes: simplify dispatcher
The dispatcher functions are much more complex than they're usually are (just switch/case statement). Bring them in line with the standard scheme used in the Xserver, so further steps become easier. It's also much cleaner to use the defines from proto headers instead of raw numbers. Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
This commit is contained in:
parent
eb0baa881c
commit
44f947b9cb
|
@ -306,7 +306,7 @@ SProcXFixesSelectCursorInput(ClientPtr client)
|
|||
swaps(&stuff->length);
|
||||
swapl(&stuff->window);
|
||||
swapl(&stuff->eventMask);
|
||||
return (*ProcXFixesVector[stuff->xfixesReqType]) (client);
|
||||
return ProcXFixesSelectCursorInput(client);
|
||||
}
|
||||
|
||||
void _X_COLD
|
||||
|
@ -423,7 +423,7 @@ SProcXFixesGetCursorImage(ClientPtr client)
|
|||
{
|
||||
REQUEST(xXFixesGetCursorImageReq);
|
||||
swaps(&stuff->length);
|
||||
return (*ProcXFixesVector[stuff->xfixesReqType]) (client);
|
||||
return ProcXFixesGetCursorImage(client);
|
||||
}
|
||||
|
||||
int
|
||||
|
@ -455,7 +455,7 @@ SProcXFixesSetCursorName(ClientPtr client)
|
|||
REQUEST_AT_LEAST_SIZE(xXFixesSetCursorNameReq);
|
||||
swapl(&stuff->cursor);
|
||||
swaps(&stuff->nbytes);
|
||||
return (*ProcXFixesVector[stuff->xfixesReqType]) (client);
|
||||
return ProcXFixesSetCursorName(client);
|
||||
}
|
||||
|
||||
int
|
||||
|
@ -503,7 +503,7 @@ SProcXFixesGetCursorName(ClientPtr client)
|
|||
swaps(&stuff->length);
|
||||
REQUEST_SIZE_MATCH(xXFixesGetCursorNameReq);
|
||||
swapl(&stuff->cursor);
|
||||
return (*ProcXFixesVector[stuff->xfixesReqType]) (client);
|
||||
return ProcXFixesGetCursorName(client);
|
||||
}
|
||||
|
||||
int
|
||||
|
@ -580,7 +580,7 @@ SProcXFixesGetCursorImageAndName(ClientPtr client)
|
|||
{
|
||||
REQUEST(xXFixesGetCursorImageAndNameReq);
|
||||
swaps(&stuff->length);
|
||||
return (*ProcXFixesVector[stuff->xfixesReqType]) (client);
|
||||
return ProcXFixesGetCursorImageAndName(client);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -711,7 +711,7 @@ SProcXFixesChangeCursor(ClientPtr client)
|
|||
REQUEST_SIZE_MATCH(xXFixesChangeCursorReq);
|
||||
swapl(&stuff->source);
|
||||
swapl(&stuff->destination);
|
||||
return (*ProcXFixesVector[stuff->xfixesReqType]) (client);
|
||||
return ProcXFixesChangeCursor(client);
|
||||
}
|
||||
|
||||
static Bool
|
||||
|
@ -750,7 +750,7 @@ SProcXFixesChangeCursorByName(ClientPtr client)
|
|||
REQUEST_AT_LEAST_SIZE(xXFixesChangeCursorByNameReq);
|
||||
swapl(&stuff->source);
|
||||
swaps(&stuff->nbytes);
|
||||
return (*ProcXFixesVector[stuff->xfixesReqType]) (client);
|
||||
return ProcXFixesChangeCursorByName(client);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -908,7 +908,7 @@ SProcXFixesHideCursor(ClientPtr client)
|
|||
swaps(&stuff->length);
|
||||
REQUEST_SIZE_MATCH(xXFixesHideCursorReq);
|
||||
swapl(&stuff->window);
|
||||
return (*ProcXFixesVector[stuff->xfixesReqType]) (client);
|
||||
return ProcXFixesHideCursor(client);
|
||||
}
|
||||
|
||||
int
|
||||
|
@ -958,7 +958,7 @@ SProcXFixesShowCursor(ClientPtr client)
|
|||
swaps(&stuff->length);
|
||||
REQUEST_SIZE_MATCH(xXFixesShowCursorReq);
|
||||
swapl(&stuff->window);
|
||||
return (*ProcXFixesVector[stuff->xfixesReqType]) (client);
|
||||
return ProcXFixesShowCursor(client);
|
||||
}
|
||||
|
||||
static int
|
||||
|
@ -1045,7 +1045,7 @@ SProcXFixesCreatePointerBarrier(ClientPtr client)
|
|||
swaps(in_devices + i);
|
||||
}
|
||||
|
||||
return ProcXFixesVector[stuff->xfixesReqType] (client);
|
||||
return ProcXFixesCreatePointerBarrier(client);
|
||||
}
|
||||
|
||||
int
|
||||
|
@ -1066,7 +1066,7 @@ SProcXFixesDestroyPointerBarrier(ClientPtr client)
|
|||
swaps(&stuff->length);
|
||||
REQUEST_SIZE_MATCH(xXFixesDestroyPointerBarrierReq);
|
||||
swapl(&stuff->barrier);
|
||||
return ProcXFixesVector[stuff->xfixesReqType] (client);
|
||||
return ProcXFixesDestroyPointerBarrier(client);
|
||||
}
|
||||
|
||||
Bool
|
||||
|
|
|
@ -85,7 +85,7 @@ SProcXFixesSetClientDisconnectMode(ClientPtr client)
|
|||
|
||||
swapl(&stuff->disconnect_mode);
|
||||
|
||||
return (*ProcXFixesVector[stuff->xfixesReqType]) (client);
|
||||
return ProcXFixesSetClientDisconnectMode(client);
|
||||
}
|
||||
|
||||
int
|
||||
|
@ -120,7 +120,7 @@ SProcXFixesGetClientDisconnectMode(ClientPtr client)
|
|||
|
||||
REQUEST_SIZE_MATCH(xXFixesGetClientDisconnectModeReq);
|
||||
|
||||
return (*ProcXFixesVector[stuff->xfixesReqType]) (client);
|
||||
return ProcXFixesGetClientDisconnectMode(client);
|
||||
}
|
||||
|
||||
Bool
|
||||
|
|
|
@ -102,7 +102,7 @@ SProcXFixesCreateRegion(ClientPtr client)
|
|||
REQUEST_AT_LEAST_SIZE(xXFixesCreateRegionReq);
|
||||
swapl(&stuff->region);
|
||||
SwapRestS(stuff);
|
||||
return (*ProcXFixesVector[stuff->xfixesReqType]) (client);
|
||||
return ProcXFixesCreateRegion(client);
|
||||
}
|
||||
|
||||
int
|
||||
|
@ -146,7 +146,7 @@ SProcXFixesCreateRegionFromBitmap(ClientPtr client)
|
|||
REQUEST_SIZE_MATCH(xXFixesCreateRegionFromBitmapReq);
|
||||
swapl(&stuff->region);
|
||||
swapl(&stuff->bitmap);
|
||||
return (*ProcXFixesVector[stuff->xfixesReqType]) (client);
|
||||
return ProcXFixesCreateRegionFromBitmap(client);
|
||||
}
|
||||
|
||||
int
|
||||
|
@ -205,7 +205,7 @@ SProcXFixesCreateRegionFromWindow(ClientPtr client)
|
|||
REQUEST_SIZE_MATCH(xXFixesCreateRegionFromWindowReq);
|
||||
swapl(&stuff->region);
|
||||
swapl(&stuff->window);
|
||||
return (*ProcXFixesVector[stuff->xfixesReqType]) (client);
|
||||
return ProcXFixesCreateRegionFromWindow(client);
|
||||
}
|
||||
|
||||
int
|
||||
|
@ -248,7 +248,7 @@ SProcXFixesCreateRegionFromGC(ClientPtr client)
|
|||
REQUEST_SIZE_MATCH(xXFixesCreateRegionFromGCReq);
|
||||
swapl(&stuff->region);
|
||||
swapl(&stuff->gc);
|
||||
return (*ProcXFixesVector[stuff->xfixesReqType]) (client);
|
||||
return ProcXFixesCreateRegionFromGC(client);
|
||||
}
|
||||
|
||||
int
|
||||
|
@ -290,7 +290,7 @@ SProcXFixesCreateRegionFromPicture(ClientPtr client)
|
|||
REQUEST_SIZE_MATCH(xXFixesCreateRegionFromPictureReq);
|
||||
swapl(&stuff->region);
|
||||
swapl(&stuff->picture);
|
||||
return (*ProcXFixesVector[stuff->xfixesReqType]) (client);
|
||||
return ProcXFixesCreateRegionFromPicture(client);
|
||||
}
|
||||
|
||||
int
|
||||
|
@ -313,7 +313,7 @@ SProcXFixesDestroyRegion(ClientPtr client)
|
|||
swaps(&stuff->length);
|
||||
REQUEST_SIZE_MATCH(xXFixesDestroyRegionReq);
|
||||
swapl(&stuff->region);
|
||||
return (*ProcXFixesVector[stuff->xfixesReqType]) (client);
|
||||
return ProcXFixesDestroyRegion(client);
|
||||
}
|
||||
|
||||
int
|
||||
|
@ -352,7 +352,7 @@ SProcXFixesSetRegion(ClientPtr client)
|
|||
REQUEST_AT_LEAST_SIZE(xXFixesSetRegionReq);
|
||||
swapl(&stuff->region);
|
||||
SwapRestS(stuff);
|
||||
return (*ProcXFixesVector[stuff->xfixesReqType]) (client);
|
||||
return ProcXFixesSetRegion(client);
|
||||
}
|
||||
|
||||
int
|
||||
|
@ -381,7 +381,7 @@ SProcXFixesCopyRegion(ClientPtr client)
|
|||
REQUEST_SIZE_MATCH(xXFixesCopyRegionReq);
|
||||
swapl(&stuff->source);
|
||||
swapl(&stuff->destination);
|
||||
return (*ProcXFixesVector[stuff->xfixesReqType]) (client);
|
||||
return ProcXFixesCopyRegion(client);
|
||||
}
|
||||
|
||||
int
|
||||
|
@ -424,7 +424,7 @@ SProcXFixesCombineRegion(ClientPtr client)
|
|||
swapl(&stuff->source1);
|
||||
swapl(&stuff->source2);
|
||||
swapl(&stuff->destination);
|
||||
return (*ProcXFixesVector[stuff->xfixesReqType]) (client);
|
||||
return ProcXFixesCombineRegion(client);
|
||||
}
|
||||
|
||||
int
|
||||
|
@ -471,7 +471,7 @@ SProcXFixesInvertRegion(ClientPtr client)
|
|||
swaps(&stuff->width);
|
||||
swaps(&stuff->height);
|
||||
swapl(&stuff->destination);
|
||||
return (*ProcXFixesVector[stuff->xfixesReqType]) (client);
|
||||
return ProcXFixesInvertRegion(client);
|
||||
}
|
||||
|
||||
int
|
||||
|
@ -498,7 +498,7 @@ SProcXFixesTranslateRegion(ClientPtr client)
|
|||
swapl(&stuff->region);
|
||||
swaps(&stuff->dx);
|
||||
swaps(&stuff->dy);
|
||||
return (*ProcXFixesVector[stuff->xfixesReqType]) (client);
|
||||
return ProcXFixesTranslateRegion(client);
|
||||
}
|
||||
|
||||
int
|
||||
|
@ -526,7 +526,7 @@ SProcXFixesRegionExtents(ClientPtr client)
|
|||
REQUEST_SIZE_MATCH(xXFixesRegionExtentsReq);
|
||||
swapl(&stuff->source);
|
||||
swapl(&stuff->destination);
|
||||
return (*ProcXFixesVector[stuff->xfixesReqType]) (client);
|
||||
return ProcXFixesRegionExtents(client);
|
||||
}
|
||||
|
||||
int
|
||||
|
@ -590,7 +590,7 @@ SProcXFixesFetchRegion(ClientPtr client)
|
|||
swaps(&stuff->length);
|
||||
REQUEST_SIZE_MATCH(xXFixesFetchRegionReq);
|
||||
swapl(&stuff->region);
|
||||
return (*ProcXFixesVector[stuff->xfixesReqType]) (client);
|
||||
return ProcXFixesFetchRegion(client);
|
||||
}
|
||||
|
||||
static int
|
||||
|
@ -652,7 +652,7 @@ SProcXFixesSetGCClipRegion(ClientPtr client)
|
|||
swapl(&stuff->region);
|
||||
swaps(&stuff->xOrigin);
|
||||
swaps(&stuff->yOrigin);
|
||||
return (*ProcXFixesVector[stuff->xfixesReqType]) (client);
|
||||
return ProcXFixesSetGCClipRegion(client);
|
||||
}
|
||||
|
||||
typedef RegionPtr (*CreateDftPtr) (WindowPtr pWin);
|
||||
|
@ -755,7 +755,7 @@ SProcXFixesSetWindowShapeRegion(ClientPtr client)
|
|||
swaps(&stuff->xOff);
|
||||
swaps(&stuff->yOff);
|
||||
swapl(&stuff->region);
|
||||
return (*ProcXFixesVector[stuff->xfixesReqType]) (client);
|
||||
return ProcXFixesSetWindowShapeRegion(client);
|
||||
}
|
||||
|
||||
static int
|
||||
|
@ -804,7 +804,7 @@ SProcXFixesSetPictureClipRegion(ClientPtr client)
|
|||
swapl(&stuff->region);
|
||||
swaps(&stuff->xOrigin);
|
||||
swaps(&stuff->yOrigin);
|
||||
return (*ProcXFixesVector[stuff->xfixesReqType]) (client);
|
||||
return ProcXFixesSetPictureClipRegion(client);
|
||||
}
|
||||
|
||||
int
|
||||
|
@ -859,7 +859,7 @@ SProcXFixesExpandRegion(ClientPtr client)
|
|||
swaps(&stuff->right);
|
||||
swaps(&stuff->top);
|
||||
swaps(&stuff->bottom);
|
||||
return (*ProcXFixesVector[stuff->xfixesReqType]) (client);
|
||||
return ProcXFixesExpandRegion(client);
|
||||
}
|
||||
|
||||
#ifdef PANORAMIX
|
||||
|
|
|
@ -68,5 +68,5 @@ SProcXFixesChangeSaveSet(ClientPtr client)
|
|||
|
||||
swaps(&stuff->length);
|
||||
swapl(&stuff->window);
|
||||
return (*ProcXFixesVector[stuff->xfixesReqType]) (client);
|
||||
return ProcXFixesChangeSaveSet(client);
|
||||
}
|
||||
|
|
|
@ -210,7 +210,7 @@ SProcXFixesSelectSelectionInput(ClientPtr client)
|
|||
swapl(&stuff->window);
|
||||
swapl(&stuff->selection);
|
||||
swapl(&stuff->eventMask);
|
||||
return (*ProcXFixesVector[stuff->xfixesReqType]) (client);
|
||||
return ProcXFixesSelectSelectionInput(client);
|
||||
}
|
||||
|
||||
void _X_COLD
|
||||
|
|
256
xfixes/xfixes.c
256
xfixes/xfixes.c
|
@ -108,56 +108,99 @@ static const int version_requests[] = {
|
|||
X_XFixesGetClientDisconnectMode, /* Version 6 */
|
||||
};
|
||||
|
||||
int (*ProcXFixesVector[XFixesNumberRequests]) (ClientPtr) = {
|
||||
/*************** Version 1 ******************/
|
||||
ProcXFixesQueryVersion,
|
||||
ProcXFixesChangeSaveSet,
|
||||
ProcXFixesSelectSelectionInput,
|
||||
ProcXFixesSelectCursorInput, ProcXFixesGetCursorImage,
|
||||
/*************** Version 2 ******************/
|
||||
ProcXFixesCreateRegion,
|
||||
ProcXFixesCreateRegionFromBitmap,
|
||||
ProcXFixesCreateRegionFromWindow,
|
||||
ProcXFixesCreateRegionFromGC,
|
||||
ProcXFixesCreateRegionFromPicture,
|
||||
ProcXFixesDestroyRegion,
|
||||
ProcXFixesSetRegion,
|
||||
ProcXFixesCopyRegion,
|
||||
ProcXFixesCombineRegion,
|
||||
ProcXFixesCombineRegion,
|
||||
ProcXFixesCombineRegion,
|
||||
ProcXFixesInvertRegion,
|
||||
ProcXFixesTranslateRegion,
|
||||
ProcXFixesRegionExtents,
|
||||
ProcXFixesFetchRegion,
|
||||
ProcXFixesSetGCClipRegion,
|
||||
ProcXFixesSetWindowShapeRegion,
|
||||
ProcXFixesSetPictureClipRegion,
|
||||
ProcXFixesSetCursorName,
|
||||
ProcXFixesGetCursorName,
|
||||
ProcXFixesGetCursorImageAndName,
|
||||
ProcXFixesChangeCursor, ProcXFixesChangeCursorByName,
|
||||
/*************** Version 3 ******************/
|
||||
ProcXFixesExpandRegion,
|
||||
/*************** Version 4 ****************/
|
||||
ProcXFixesHideCursor, ProcXFixesShowCursor,
|
||||
/*************** Version 5 ****************/
|
||||
ProcXFixesCreatePointerBarrier, ProcXFixesDestroyPointerBarrier,
|
||||
/*************** Version 6 ****************/
|
||||
ProcXFixesSetClientDisconnectMode, ProcXFixesGetClientDisconnectMode,
|
||||
};
|
||||
|
||||
static int
|
||||
ProcXFixesDispatch(ClientPtr client)
|
||||
{
|
||||
REQUEST(xXFixesReq);
|
||||
REQUEST(xReq);
|
||||
XFixesClientPtr pXFixesClient = GetXFixesClient(client);
|
||||
|
||||
if (pXFixesClient->major_version >= ARRAY_SIZE(version_requests))
|
||||
return BadRequest;
|
||||
if (stuff->xfixesReqType > version_requests[pXFixesClient->major_version])
|
||||
if (stuff->data > version_requests[pXFixesClient->major_version])
|
||||
return BadRequest;
|
||||
return (*ProcXFixesVector[stuff->xfixesReqType]) (client);
|
||||
|
||||
switch (stuff->data) {
|
||||
/*************** Version 1 ******************/
|
||||
case X_XFixesQueryVersion:
|
||||
return ProcXFixesQueryVersion(client);
|
||||
case X_XFixesChangeSaveSet:
|
||||
return ProcXFixesChangeSaveSet(client);
|
||||
case X_XFixesSelectSelectionInput:
|
||||
return ProcXFixesSelectSelectionInput(client);
|
||||
case X_XFixesSelectCursorInput:
|
||||
return ProcXFixesSelectCursorInput(client);
|
||||
case X_XFixesGetCursorImage:
|
||||
return ProcXFixesGetCursorImage(client);
|
||||
|
||||
/*************** Version 2 ******************/
|
||||
case X_XFixesCreateRegion:
|
||||
return ProcXFixesCreateRegion(client);
|
||||
case X_XFixesCreateRegionFromBitmap:
|
||||
return ProcXFixesCreateRegionFromBitmap(client);
|
||||
case X_XFixesCreateRegionFromWindow:
|
||||
return ProcXFixesCreateRegionFromWindow(client);
|
||||
case X_XFixesCreateRegionFromGC:
|
||||
return ProcXFixesCreateRegionFromGC(client);
|
||||
case X_XFixesCreateRegionFromPicture:
|
||||
return ProcXFixesCreateRegionFromPicture(client);
|
||||
case X_XFixesDestroyRegion:
|
||||
return ProcXFixesDestroyRegion(client);
|
||||
case X_XFixesSetRegion:
|
||||
return ProcXFixesSetRegion(client);
|
||||
case X_XFixesCopyRegion:
|
||||
return ProcXFixesCopyRegion(client);
|
||||
case X_XFixesUnionRegion:
|
||||
return ProcXFixesCombineRegion(client);
|
||||
case X_XFixesIntersectRegion:
|
||||
return ProcXFixesCombineRegion(client);
|
||||
case X_XFixesSubtractRegion:
|
||||
return ProcXFixesCombineRegion(client);
|
||||
case X_XFixesInvertRegion:
|
||||
return ProcXFixesInvertRegion(client);
|
||||
case X_XFixesTranslateRegion:
|
||||
return ProcXFixesTranslateRegion(client);
|
||||
case X_XFixesRegionExtents:
|
||||
return ProcXFixesRegionExtents(client);
|
||||
case X_XFixesFetchRegion:
|
||||
return ProcXFixesFetchRegion(client);
|
||||
case X_XFixesSetGCClipRegion:
|
||||
return ProcXFixesSetGCClipRegion(client);
|
||||
case X_XFixesSetWindowShapeRegion:
|
||||
return ProcXFixesSetWindowShapeRegion(client);
|
||||
case X_XFixesSetPictureClipRegion:
|
||||
return ProcXFixesSetPictureClipRegion(client);
|
||||
case X_XFixesSetCursorName:
|
||||
return ProcXFixesSetCursorName(client);
|
||||
case X_XFixesGetCursorName:
|
||||
return ProcXFixesGetCursorName(client);
|
||||
case X_XFixesGetCursorImageAndName:
|
||||
return ProcXFixesGetCursorImageAndName(client);
|
||||
case X_XFixesChangeCursor:
|
||||
return ProcXFixesChangeCursor(client);
|
||||
case X_XFixesChangeCursorByName:
|
||||
return ProcXFixesChangeCursorByName(client);
|
||||
|
||||
/*************** Version 3 ******************/
|
||||
case X_XFixesExpandRegion:
|
||||
return ProcXFixesExpandRegion(client);
|
||||
/*************** Version 4 ******************/
|
||||
case X_XFixesHideCursor:
|
||||
return ProcXFixesHideCursor(client);
|
||||
case X_XFixesShowCursor:
|
||||
return ProcXFixesShowCursor(client);
|
||||
/*************** Version 5 ******************/
|
||||
case X_XFixesCreatePointerBarrier:
|
||||
return ProcXFixesCreatePointerBarrier(client);
|
||||
case X_XFixesDestroyPointerBarrier:
|
||||
return ProcXFixesDestroyPointerBarrier(client);
|
||||
/*************** Version 6 ******************/
|
||||
case X_XFixesSetClientDisconnectMode:
|
||||
return ProcXFixesSetClientDisconnectMode(client);
|
||||
case X_XFixesGetClientDisconnectMode:
|
||||
return ProcXFixesGetClientDisconnectMode(client);
|
||||
default:
|
||||
return BadRequest;
|
||||
}
|
||||
}
|
||||
|
||||
static _X_COLD int
|
||||
|
@ -169,59 +212,102 @@ SProcXFixesQueryVersion(ClientPtr client)
|
|||
swaps(&stuff->length);
|
||||
swapl(&stuff->majorVersion);
|
||||
swapl(&stuff->minorVersion);
|
||||
return (*ProcXFixesVector[stuff->xfixesReqType]) (client);
|
||||
return ProcXFixesQueryVersion(client);
|
||||
}
|
||||
|
||||
static int (*SProcXFixesVector[XFixesNumberRequests]) (ClientPtr) = {
|
||||
/*************** Version 1 ******************/
|
||||
SProcXFixesQueryVersion,
|
||||
SProcXFixesChangeSaveSet,
|
||||
SProcXFixesSelectSelectionInput,
|
||||
SProcXFixesSelectCursorInput, SProcXFixesGetCursorImage,
|
||||
/*************** Version 2 ******************/
|
||||
SProcXFixesCreateRegion,
|
||||
SProcXFixesCreateRegionFromBitmap,
|
||||
SProcXFixesCreateRegionFromWindow,
|
||||
SProcXFixesCreateRegionFromGC,
|
||||
SProcXFixesCreateRegionFromPicture,
|
||||
SProcXFixesDestroyRegion,
|
||||
SProcXFixesSetRegion,
|
||||
SProcXFixesCopyRegion,
|
||||
SProcXFixesCombineRegion,
|
||||
SProcXFixesCombineRegion,
|
||||
SProcXFixesCombineRegion,
|
||||
SProcXFixesInvertRegion,
|
||||
SProcXFixesTranslateRegion,
|
||||
SProcXFixesRegionExtents,
|
||||
SProcXFixesFetchRegion,
|
||||
SProcXFixesSetGCClipRegion,
|
||||
SProcXFixesSetWindowShapeRegion,
|
||||
SProcXFixesSetPictureClipRegion,
|
||||
SProcXFixesSetCursorName,
|
||||
SProcXFixesGetCursorName,
|
||||
SProcXFixesGetCursorImageAndName,
|
||||
SProcXFixesChangeCursor, SProcXFixesChangeCursorByName,
|
||||
/*************** Version 3 ******************/
|
||||
SProcXFixesExpandRegion,
|
||||
/*************** Version 4 ****************/
|
||||
SProcXFixesHideCursor, SProcXFixesShowCursor,
|
||||
/*************** Version 5 ****************/
|
||||
SProcXFixesCreatePointerBarrier, SProcXFixesDestroyPointerBarrier,
|
||||
/*************** Version 6 ****************/
|
||||
SProcXFixesSetClientDisconnectMode, SProcXFixesGetClientDisconnectMode,
|
||||
};
|
||||
|
||||
static _X_COLD int
|
||||
SProcXFixesDispatch(ClientPtr client)
|
||||
{
|
||||
REQUEST(xXFixesReq);
|
||||
REQUEST(xReq);
|
||||
XFixesClientPtr pXFixesClient = GetXFixesClient(client);
|
||||
|
||||
if (pXFixesClient->major_version >= ARRAY_SIZE(version_requests))
|
||||
return BadRequest;
|
||||
if (stuff->xfixesReqType > version_requests[pXFixesClient->major_version])
|
||||
if (stuff->data > version_requests[pXFixesClient->major_version])
|
||||
return BadRequest;
|
||||
return (*SProcXFixesVector[stuff->xfixesReqType]) (client);
|
||||
|
||||
switch (stuff->data) {
|
||||
/*************** Version 1 ******************/
|
||||
case X_XFixesQueryVersion:
|
||||
return SProcXFixesQueryVersion(client);
|
||||
case X_XFixesChangeSaveSet:
|
||||
return SProcXFixesChangeSaveSet(client);
|
||||
case X_XFixesSelectSelectionInput:
|
||||
return SProcXFixesSelectSelectionInput(client);
|
||||
case X_XFixesSelectCursorInput:
|
||||
return SProcXFixesSelectCursorInput(client);
|
||||
case X_XFixesGetCursorImage:
|
||||
return SProcXFixesGetCursorImage(client);
|
||||
|
||||
/*************** Version 2 ******************/
|
||||
case X_XFixesCreateRegion:
|
||||
return SProcXFixesCreateRegion(client);
|
||||
case X_XFixesCreateRegionFromBitmap:
|
||||
return SProcXFixesCreateRegionFromBitmap(client);
|
||||
case X_XFixesCreateRegionFromWindow:
|
||||
return SProcXFixesCreateRegionFromWindow(client);
|
||||
case X_XFixesCreateRegionFromGC:
|
||||
return SProcXFixesCreateRegionFromGC(client);
|
||||
case X_XFixesCreateRegionFromPicture:
|
||||
return SProcXFixesCreateRegionFromPicture(client);
|
||||
case X_XFixesDestroyRegion:
|
||||
return SProcXFixesDestroyRegion(client);
|
||||
case X_XFixesSetRegion:
|
||||
return SProcXFixesSetRegion(client);
|
||||
case X_XFixesCopyRegion:
|
||||
return SProcXFixesCopyRegion(client);
|
||||
case X_XFixesUnionRegion:
|
||||
return SProcXFixesCombineRegion(client);
|
||||
case X_XFixesIntersectRegion:
|
||||
return SProcXFixesCombineRegion(client);
|
||||
case X_XFixesSubtractRegion:
|
||||
return SProcXFixesCombineRegion(client);
|
||||
case X_XFixesInvertRegion:
|
||||
return SProcXFixesInvertRegion(client);
|
||||
case X_XFixesTranslateRegion:
|
||||
return SProcXFixesTranslateRegion(client);
|
||||
case X_XFixesRegionExtents:
|
||||
return SProcXFixesRegionExtents(client);
|
||||
case X_XFixesFetchRegion:
|
||||
return SProcXFixesFetchRegion(client);
|
||||
case X_XFixesSetGCClipRegion:
|
||||
return SProcXFixesSetGCClipRegion(client);
|
||||
case X_XFixesSetWindowShapeRegion:
|
||||
return SProcXFixesSetWindowShapeRegion(client);
|
||||
case X_XFixesSetPictureClipRegion:
|
||||
return SProcXFixesSetPictureClipRegion(client);
|
||||
case X_XFixesSetCursorName:
|
||||
return SProcXFixesSetCursorName(client);
|
||||
case X_XFixesGetCursorName:
|
||||
return SProcXFixesGetCursorName(client);
|
||||
case X_XFixesGetCursorImageAndName:
|
||||
return SProcXFixesGetCursorImageAndName(client);
|
||||
case X_XFixesChangeCursor:
|
||||
return SProcXFixesChangeCursor(client);
|
||||
case X_XFixesChangeCursorByName:
|
||||
return SProcXFixesChangeCursorByName(client);
|
||||
|
||||
/*************** Version 3 ******************/
|
||||
case X_XFixesExpandRegion:
|
||||
return SProcXFixesExpandRegion(client);
|
||||
/*************** Version 4 ******************/
|
||||
case X_XFixesHideCursor:
|
||||
return SProcXFixesHideCursor(client);
|
||||
case X_XFixesShowCursor:
|
||||
return SProcXFixesShowCursor(client);
|
||||
/*************** Version 5 ******************/
|
||||
case X_XFixesCreatePointerBarrier:
|
||||
return SProcXFixesCreatePointerBarrier(client);
|
||||
case X_XFixesDestroyPointerBarrier:
|
||||
return SProcXFixesDestroyPointerBarrier(client);
|
||||
/*************** Version 6 ******************/
|
||||
case X_XFixesSetClientDisconnectMode:
|
||||
return SProcXFixesSetClientDisconnectMode(client);
|
||||
case X_XFixesGetClientDisconnectMode:
|
||||
return SProcXFixesGetClientDisconnectMode(client);
|
||||
default:
|
||||
return BadRequest;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -69,8 +69,6 @@ typedef struct _XFixesClient {
|
|||
|
||||
#define GetXFixesClient(pClient) ((XFixesClientPtr)dixLookupPrivate(&(pClient)->devPrivates, XFixesClientPrivateKey))
|
||||
|
||||
extern int (*ProcXFixesVector[XFixesNumberRequests]) (ClientPtr);
|
||||
|
||||
/* Save set */
|
||||
int
|
||||
ProcXFixesChangeSaveSet(ClientPtr client);
|
||||
|
|
Loading…
Reference in New Issue