From 8d65439d5c950ea01ec8e1e4dd989aff0fb4c3f0 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Thu, 28 May 2009 14:43:27 -0700 Subject: [PATCH] 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 (cherry picked from commit 69a9545d1f8110841538410818df19fd960412c5) Signed-off-by: Keith Packard --- randr/rrcrtc.c | 5 ++++- randr/rrscreen.c | 4 +++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/randr/rrcrtc.c b/randr/rrcrtc.c index 7edae521f..8a5738fc5 100644 --- a/randr/rrcrtc.c +++ b/randr/rrcrtc.c @@ -967,6 +967,7 @@ ProcRRSetCrtcConfig (ClientPtr client) goto sendReply; } rep.status = RRSetConfigSuccess; + pScrPriv->lastSetTime = time; sendReply: if (outputs) @@ -976,7 +977,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) { @@ -1126,6 +1127,8 @@ ProcRRSetPanning (ClientPtr client) if (! pScrPriv->rrSetPanning (pScreen, crtc, &total, &tracking, border)) return BadMatch; + pScrPriv->lastSetTime = time; + rep.status = RRSetConfigSuccess; sendReply: diff --git a/randr/rrscreen.c b/randr/rrscreen.c index 36ef86ece..dd645a936 100644 --- a/randr/rrscreen.c +++ b/randr/rrscreen.c @@ -945,8 +945,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