* Thu Sep 06 2007 Adam Jackson <ajax@redhat.com> 1.3.0.0-23

- xserver-1.3.0-xrandr-timestamp-buglet.patch: Make sure xrandr doesn't
  stop working after several hours. (Marius Gedminas, #273801)
This commit is contained in:
Adam Jackson 2007-09-06 21:25:33 +00:00
parent ab2e7b56b3
commit ac1e1264d5
2 changed files with 36 additions and 1 deletions

View File

@ -9,7 +9,7 @@
Summary: X.Org X11 X server
Name: xorg-x11-server
Version: 1.3.0.0
Release: 22%{?dist}
Release: 23%{?dist}
URL: http://www.x.org
License: MIT/X11
Group: User Interface/X
@ -33,6 +33,7 @@ Patch21: xserver-1.3.0-xkb-and-loathing.patch
Patch22: xserver-1.3.0-fbdevhw-magic-numbers.patch
Patch23: xserver-1.3.0-ramdac-export.patch
Patch24: xserver-1.3.0-reput-video.patch
Patch25: xserver-1.3.0-xrandr-timestamp-buglet.patch
# OpenGL compositing manager feature/optimization patches.
Patch100: xorg-x11-server-1.1.0-no-move-damage.patch
@ -296,6 +297,7 @@ Xserver source code needed to build VNC server (Xvnc)
%patch22 -p1 -b .magic-numbers
%patch23 -p1 -b .ramdac
%patch24 -p1 -b .reput
%patch25 -p1 -b .xrandr-timestamp
%patch100 -p0 -b .no-move-damage
%patch101 -p0 -b .dont-backfill-bg-none
@ -606,6 +608,10 @@ rm -rf $RPM_BUILD_ROOT
%changelog
* Thu Sep 06 2007 Adam Jackson <ajax@redhat.com> 1.3.0.0-23
- xserver-1.3.0-xrandr-timestamp-buglet.patch: Make sure xrandr doesn't
stop working after several hours. (Marius Gedminas, #273801)
* Fri Aug 24 2007 Adam Jackson <ajax@redhat.com> 1.3.0.0-22
- Bump BuildRequires: xorg-x11-xtrans-devel to pull in abstract socket
support.

View File

@ -0,0 +1,29 @@
--- a/randr/rrscreen.c.orig 2006-07-05 21:31:44.000000000 +0300
+++ b/randr/rrscreen.c 2007-02-03 00:00:10.000000000 +0200
@@ -723,7 +723,6 @@
pScrPriv = rrGetScrPriv(pScreen);
time = ClientTimeToServerTime(stuff->timestamp);
- configTime = ClientTimeToServerTime(stuff->configTimestamp);
oldWidth = pScreen->width;
oldHeight = pScreen->height;
@@ -738,11 +737,15 @@
return BadAlloc;
/*
- * 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;