Merge branch 'revert-1591' into 'master'

Revert parts of !1591 ("Xext: saver: misc cleanups & tiny bugfix (#1704)")

See merge request xorg/xserver!2023
This commit is contained in:
Marge Bot 2025-06-17 21:06:02 +00:00
commit 2a0f6ec920

View File

@ -601,6 +601,7 @@ ProcScreenSaverQueryVersion(ClientPtr client)
xScreenSaverQueryVersionReply rep = { xScreenSaverQueryVersionReply rep = {
.type = X_Reply, .type = X_Reply,
.sequenceNumber = client->sequence, .sequenceNumber = client->sequence,
.length = 0,
.majorVersion = SERVER_SAVER_MAJOR_VERSION, .majorVersion = SERVER_SAVER_MAJOR_VERSION,
.minorVersion = SERVER_SAVER_MINOR_VERSION .minorVersion = SERVER_SAVER_MINOR_VERSION
}; };
@ -609,6 +610,7 @@ ProcScreenSaverQueryVersion(ClientPtr client)
if (client->swapped) { if (client->swapped) {
swaps(&rep.sequenceNumber); swaps(&rep.sequenceNumber);
swapl(&rep.length);
swaps(&rep.majorVersion); swaps(&rep.majorVersion);
swaps(&rep.minorVersion); swaps(&rep.minorVersion);
} }
@ -620,6 +622,7 @@ static int
ProcScreenSaverQueryInfo(ClientPtr client) ProcScreenSaverQueryInfo(ClientPtr client)
{ {
REQUEST(xScreenSaverQueryInfoReq); REQUEST(xScreenSaverQueryInfoReq);
xScreenSaverQueryInfoReply rep;
int rc; int rc;
ScreenSaverStuffPtr pSaver; ScreenSaverStuffPtr pSaver;
DrawablePtr pDraw; DrawablePtr pDraw;
@ -641,24 +644,30 @@ ProcScreenSaverQueryInfo(ClientPtr client)
UpdateCurrentTime(); UpdateCurrentTime();
lastInput = GetTimeInMillis() - LastEventTime(XIAllDevices).milliseconds; lastInput = GetTimeInMillis() - LastEventTime(XIAllDevices).milliseconds;
xScreenSaverQueryInfoReply rep = { rep = (xScreenSaverQueryInfoReply) {
.type = X_Reply, .type = X_Reply,
.sequenceNumber = client->sequence, .sequenceNumber = client->sequence,
.length = 0,
.window = pSaver->wid .window = pSaver->wid
}; };
if (screenIsSaved != SCREEN_SAVER_OFF) { if (screenIsSaved != SCREEN_SAVER_OFF) {
rep.state = ScreenSaverOn; rep.state = ScreenSaverOn;
if (ScreenSaverTime) if (ScreenSaverTime)
rep.tilOrSince = lastInput - ScreenSaverTime; rep.tilOrSince = lastInput - ScreenSaverTime;
else
rep.tilOrSince = 0;
} }
else { else {
if (ScreenSaverTime) { if (ScreenSaverTime) {
rep.state = ScreenSaverOff; rep.state = ScreenSaverOff;
if (ScreenSaverTime >= lastInput) if (ScreenSaverTime < lastInput)
rep.tilOrSince = 0;
else
rep.tilOrSince = ScreenSaverTime - lastInput; rep.tilOrSince = ScreenSaverTime - lastInput;
} }
else { else {
rep.state = ScreenSaverDisabled; rep.state = ScreenSaverDisabled;
rep.tilOrSince = 0;
} }
} }
rep.idle = lastInput; rep.idle = lastInput;
@ -671,6 +680,7 @@ ProcScreenSaverQueryInfo(ClientPtr client)
rep.kind = ScreenSaverInternal; rep.kind = ScreenSaverInternal;
if (client->swapped) { if (client->swapped) {
swaps(&rep.sequenceNumber); swaps(&rep.sequenceNumber);
swapl(&rep.length);
swapl(&rep.window); swapl(&rep.window);
swapl(&rep.tilOrSince); swapl(&rep.tilOrSince);
swapl(&rep.idle); swapl(&rep.idle);
@ -1242,26 +1252,23 @@ ProcScreenSaverSuspend(ClientPtr client)
return Success; return Success;
} }
static int (*NormalVector[]) (ClientPtr /* client */ ) = {
ProcScreenSaverQueryVersion,
ProcScreenSaverQueryInfo,
ProcScreenSaverSelectInput,
ProcScreenSaverSetAttributes,
ProcScreenSaverUnsetAttributes,
ProcScreenSaverSuspend,
};
static int static int
ProcScreenSaverDispatch(ClientPtr client) ProcScreenSaverDispatch(ClientPtr client)
{ {
REQUEST(xReq); REQUEST(xReq);
switch (stuff->data) {
case X_ScreenSaverQueryVersion: if (stuff->data < ARRAY_SIZE(NormalVector))
return ProcScreenSaverQueryVersion(client); return (*NormalVector[stuff->data]) (client);
case X_ScreenSaverQueryInfo: return BadRequest;
return ProcScreenSaverQueryInfo(client);
case X_ScreenSaverSelectInput:
return ProcScreenSaverSelectInput(client);
case X_ScreenSaverSetAttributes:
return ProcScreenSaverSetAttributes(client);
case X_ScreenSaverUnsetAttributes:
return ProcScreenSaverUnsetAttributes(client);
case X_ScreenSaverSuspend:
return ProcScreenSaverSuspend(client);
default:
return BadRequest;
}
} }
static int _X_COLD static int _X_COLD
@ -1318,26 +1325,23 @@ SProcScreenSaverSuspend(ClientPtr client)
return ProcScreenSaverSuspend(client); return ProcScreenSaverSuspend(client);
} }
static int (*SwappedVector[]) (ClientPtr /* client */ ) = {
ProcScreenSaverQueryVersion,
SProcScreenSaverQueryInfo,
SProcScreenSaverSelectInput,
SProcScreenSaverSetAttributes,
SProcScreenSaverUnsetAttributes,
SProcScreenSaverSuspend,
};
static int _X_COLD static int _X_COLD
SProcScreenSaverDispatch(ClientPtr client) SProcScreenSaverDispatch(ClientPtr client)
{ {
REQUEST(xReq); REQUEST(xReq);
switch (stuff->data) {
case X_ScreenSaverQueryVersion: if (stuff->data < ARRAY_SIZE(NormalVector))
return ProcScreenSaverQueryVersion(client); return (*SwappedVector[stuff->data]) (client);
case X_ScreenSaverQueryInfo: return BadRequest;
return SProcScreenSaverQueryInfo(client);
case X_ScreenSaverSelectInput:
return SProcScreenSaverSelectInput(client);
case X_ScreenSaverSetAttributes:
return SProcScreenSaverSetAttributes(client);
case X_ScreenSaverUnsetAttributes:
return SProcScreenSaverUnsetAttributes(client);
case X_ScreenSaverSuspend:
return SProcScreenSaverSuspend(client);
default:
return BadRequest;
}
} }
void void