1
0

- sync-fix.patch

* fixes the issue that gnome screensaver fadeout could not be 
    stopped (bnc #648851)

OBS-URL: https://build.opensuse.org/package/show/X11:XOrg/xorg-x11-server?expand=0&rev=313
This commit is contained in:
Stefan Dirsch 2010-12-19 23:33:09 +00:00 committed by Git OBS Bridge
parent 6db81ec21b
commit 90210263eb
3 changed files with 66 additions and 0 deletions

57
sync-fix.patch Normal file
View File

@ -0,0 +1,57 @@
--- xorg-server-1.9.1/Xext/sync.c 2010-11-16 23:11:56.751124639 -0500
+++ xorg-server-1.9.1/Xext/sync.c 2010-11-16 23:13:16.327862535 -0500
@@ -2264,8 +2264,44 @@
static void
IdleTimeQueryValue (pointer pCounter, CARD64 *pValue_return)
{
- CARD32 idle = GetTimeInMillis() - lastDeviceEventTime.milliseconds;
+ static CARD32 previousLastDeviceEventTimeMilliseconds = 0;
+ CARD32 now = GetTimeInMillis();
+ CARD32 idle = now - lastDeviceEventTime.milliseconds;
+ CARD32 previousIdle = now - previousLastDeviceEventTimeMilliseconds;
+ SyncCounter *pIdleTimeCounter = (SyncCounter*)pCounter;
+
XSyncIntsToValue (pValue_return, idle, 0);
+
+ if (pCounter == NULL)
+ {
+ return;
+ }
+ if (previousLastDeviceEventTimeMilliseconds == 0)
+ {
+ /* initialize static var when this function is invoked the first time. */
+ previousLastDeviceEventTimeMilliseconds = lastDeviceEventTime.milliseconds;
+ return;
+ }
+
+ if (previousLastDeviceEventTimeMilliseconds == lastDeviceEventTime.milliseconds)
+ {
+ /* no new user event, no need to change idle counter. */
+ return;
+ }
+ previousLastDeviceEventTimeMilliseconds = lastDeviceEventTime.milliseconds;
+
+ /*
+ * Some user event occured; now update idle counter with previous
+ * event time, so idle counter has the most up-to-date value with
+ * respect to previous user event (we need old and new counter
+ * value to compute if a transition occured). Recompute bracket
+ * values if this is system counter.
+ */
+
+ XSyncIntsToValue (&pIdleTimeCounter->value, previousIdle, 0);
+ if (IsSystemCounter(pIdleTimeCounter)) {
+ SyncComputeBracketValues(pIdleTimeCounter);
+ }
}
static void
@@ -2342,7 +2378,7 @@
if (!pIdleTimeValueLess && !pIdleTimeValueGreater)
return;
- IdleTimeQueryValue (NULL, &idle);
+ IdleTimeQueryValue (IdleTimeCounter, &idle);
if ((pIdleTimeValueGreater &&
XSyncValueGreaterOrEqual (idle, *pIdleTimeValueGreater)) ||

View File

@ -1,3 +1,10 @@
-------------------------------------------------------------------
Sun Dec 19 23:23:30 UTC 2010 - sndirsch@novell.com
- sync-fix.patch
* fixes the issue that gnome screensaver fadeout could not be
stopped (bnc #648851)
------------------------------------------------------------------- -------------------------------------------------------------------
Sun Dec 19 14:57:16 UTC 2010 - sndirsch@novell.com Sun Dec 19 14:57:16 UTC 2010 - sndirsch@novell.com

View File

@ -118,6 +118,7 @@ Patch217: CVE-2010-2240-address_space_limit.patch
Patch218: CVE-2010-2240-tree_depth_limit.patch Patch218: CVE-2010-2240-tree_depth_limit.patch
Patch220: Use-external-tool-for-creating-backtraces-on-crashes.patch Patch220: Use-external-tool-for-creating-backtraces-on-crashes.patch
Patch221: commit-5c6a2f9.diff Patch221: commit-5c6a2f9.diff
Patch222: sync-fix.patch
%if %moblin %if %moblin
Patch300: moblin-use_preferred_mode_for_all_outputs.diff Patch300: moblin-use_preferred_mode_for_all_outputs.diff
%endif %endif
@ -246,6 +247,7 @@ popd
%patch218 -p1 %patch218 -p1
%patch220 -p1 %patch220 -p1
%patch221 -p1 %patch221 -p1
%patch222 -p1
%if %moblin %if %moblin
%patch300 -p1 %patch300 -p1
%endif %endif