Make RANDR 'set' timestamps follow client specified time. Bug 21987.

The lastSetTime value which indicates when the configuration within the
server was last changed was not getting set in the appropriate RandR
requests.

Signed-off-by: Keith Packard <keithp@keithp.com>
This commit is contained in:
Keith Packard 2009-05-28 14:43:27 -07:00
parent fa18c569ed
commit 69a9545d1f
2 changed files with 7 additions and 2 deletions

View File

@ -978,6 +978,7 @@ ProcRRSetCrtcConfig (ClientPtr client)
goto sendReply;
}
rep.status = RRSetConfigSuccess;
pScrPriv->lastSetTime = time;
sendReply:
if (outputs)
@ -987,7 +988,7 @@ sendReply:
/* rep.status has already been filled in */
rep.length = 0;
rep.sequenceNumber = client->sequence;
rep.newTimestamp = pScrPriv->lastConfigTime.milliseconds;
rep.newTimestamp = pScrPriv->lastSetTime.milliseconds;
if (client->swapped)
{
@ -1130,6 +1131,8 @@ ProcRRSetPanning (ClientPtr client)
if (! pScrPriv->rrSetPanning (pScreen, crtc, &total, &tracking, border))
return BadMatch;
pScrPriv->lastSetTime = time;
rep.status = RRSetConfigSuccess;
sendReply:

View File

@ -946,8 +946,10 @@ ProcRRSetScreenConfig (ClientPtr client)
if (!RRCrtcSet (crtc, mode, 0, 0, stuff->rotation, 1, &output))
rep.status = RRSetConfigFailed;
else
else {
pScrPriv->lastSetTime = time;
rep.status = RRSetConfigSuccess;
}
/*
* XXX Configure other crtcs to mirror as much as possible