diff options
Diffstat (limited to 'randr/rrscreen.c')
-rw-r--r-- | randr/rrscreen.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/randr/rrscreen.c b/randr/rrscreen.c index 8798b4244..811a5571b 100644 --- a/randr/rrscreen.c +++ b/randr/rrscreen.c @@ -766,7 +766,6 @@ ProcRRSetScreenConfig (ClientPtr client) pScrPriv = rrGetScrPriv(pScreen); time = ClientTimeToServerTime(stuff->timestamp); - configTime = ClientTimeToServerTime(stuff->configTimestamp); if (!pScrPriv) { @@ -788,11 +787,15 @@ ProcRRSetScreenConfig (ClientPtr client) crtc = output->crtc; /* - * if the client's config timestamp is not the same as the last config + * If the client's config timestamp is not the same as the last config * timestamp, then the config information isn't up-to-date and - * can't even be validated + * can't even be validated. + * + * Note that the client only knows about the milliseconds part of the + * timestamp, so using CompareTimeStamps here would cause randr to suddenly + * stop working after several hours have passed (freedesktop bug #6502). */ - if (CompareTimeStamps (configTime, pScrPriv->lastConfigTime) != 0) + if (stuff->configTimestamp != pScrPriv->lastConfigTime.milliseconds) { rep.status = RRSetConfigInvalidConfigTime; goto sendReply; |