(submit/xrandr-swap-fix) randr: fix wrong call to RRGetScreenResources() in swapped case

ProcRRGetScreenResources() vs. RRGetScreenResourcesCurrent() have different
semantics - this also must be followed in byte-swapped case.

Fixes: fc70839431 - Add server support for RRGetScreenResourcesCurrent
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
This commit is contained in:
Enrico Weigelt, metux IT consult 2024-07-29 15:01:08 +02:00
parent 025404effc
commit cbf1e26a7e

View File

@ -115,6 +115,17 @@ SProcRRGetScreenResources(ClientPtr client)
return (*ProcRandrVector[stuff->randrReqType]) (client);
}
static int _X_COLD
SProcRRGetScreenResourcesCurrent(ClientPtr client)
{
REQUEST(xRRGetScreenResourcesCurrentReq);
REQUEST_SIZE_MATCH(xRRGetScreenResourcesCurrentReq);
swaps(&stuff->length);
swapl(&stuff->window);
return (*ProcRandrVector[stuff->randrReqType]) (client);
}
static int _X_COLD
SProcRRGetOutputInfo(ClientPtr client)
{
@ -667,7 +678,7 @@ int (*SProcRandrVector[RRNumberRequests]) (ClientPtr) = {
SProcRRGetCrtcGamma, /* 23 */
SProcRRSetCrtcGamma, /* 24 */
/* V1.3 additions */
SProcRRGetScreenResources, /* 25 GetScreenResourcesCurrent */
SProcRRGetScreenResourcesCurrent, /* 25 */
SProcRRSetCrtcTransform, /* 26 */
SProcRRGetCrtcTransform, /* 27 */
SProcRRGetPanning, /* 28 */