diff --git a/dix/dispatch.c b/dix/dispatch.c index c3af81b338..69db43faa9 100644 --- a/dix/dispatch.c +++ b/dix/dispatch.c @@ -3304,11 +3304,16 @@ ProcQueryBestSize(ClientPtr client) int ProcSetScreenSaver(ClientPtr client) { - int blankingOption, exposureOption; - REQUEST(xSetScreenSaverReq); REQUEST_SIZE_MATCH(xSetScreenSaverReq); + if (client->swapped) { + swaps(&stuff->timeout); + swaps(&stuff->interval); + } + + int blankingOption, exposureOption; + DIX_FOR_EACH_SCREEN({ int rc = dixCallScreensaverAccessCallback(client, walkScreen, DixSetAttrAccess); if (rc != Success) diff --git a/dix/swapreq.c b/dix/swapreq.c index 88ac354605..6f3d4aff65 100644 --- a/dix/swapreq.c +++ b/dix/swapreq.c @@ -758,16 +758,6 @@ SProcChangePointerControl(ClientPtr client) return ((*ProcVector[X_ChangePointerControl]) (client)); } -int _X_COLD -SProcSetScreenSaver(ClientPtr client) -{ - REQUEST(xSetScreenSaverReq); - REQUEST_SIZE_MATCH(xSetScreenSaverReq); - swaps(&stuff->timeout); - swaps(&stuff->interval); - return ((*ProcVector[X_SetScreenSaver]) (client)); -} - int _X_COLD SProcChangeHosts(ClientPtr client) { diff --git a/dix/swapreq.h b/dix/swapreq.h index 79a53369b4..28750b4953 100644 --- a/dix/swapreq.h +++ b/dix/swapreq.h @@ -69,7 +69,6 @@ int SProcRotateProperties(ClientPtr client); int SProcSetClipRectangles(ClientPtr client); int SProcSetDashes(ClientPtr client); int SProcSetFontPath(ClientPtr client); -int SProcSetScreenSaver(ClientPtr client); int SProcStoreColors(ClientPtr client); int SProcStoreNamedColor(ClientPtr client); int SProcTranslateCoords(ClientPtr client); diff --git a/dix/tables.c b/dix/tables.c index ef666dd274..86fd9118d9 100644 --- a/dix/tables.c +++ b/dix/tables.c @@ -439,7 +439,7 @@ int (*SwappedProcVector[256]) (ClientPtr /* client */) = { ProcBell, SProcChangePointerControl, /* 105 */ ProcGetPointerControl, - SProcSetScreenSaver, + ProcSetScreenSaver, ProcGetScreenSaver, SProcChangeHosts, ProcListHosts, /* 110 */