Package: xserver-xorg Version: 1:7.4+4 Severity: wishlist Hi,
as explained in [0], gnome-power-manager 2.28 will stop including any of the (not always working) kludges to work around the idle time computation issues in the X server. The author has provided supposedly correct patches to fix this behavior to Xorg. The first patch has already been committed, and the second is very small. It would be nice to have these fixes included in Debian before g-p-m 2.28 is uploaded. I’m attaching the patches. [0] http://blogs.gnome.org/hughsie/2009/08/17/gnome-power-manager-and-blanking-removal-of-bodges/ Thanks, -- .''`. Josselin Mouette : :' : `. `' “I recommend you to learn English in hope that you in `- future understand things” -- Jörg Schilling
From db568f9eabf3450d8a023597ff007df355b13ea8 Mon Sep 17 00:00:00 2001 From: Peter Hutterer <peter.hutte...@who-t.net> Date: Thu, 13 Aug 2009 06:37:00 +0000 Subject: Xext: fix up wrong conditions for negative sync transitions. If the counter had a value higher than the trigger value for a negative transition, the trigger value did not get set. The correct sequence of checks is: if (positive transition) if (counter value < trigger value) set up trigger if (negative transition) if (counter value > trigger value) set up trigger Red Hat Bug 501601 <https://bugzilla.redhat.com/show_bug.cgi?id=501601> Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> --- diff --git a/Xext/sync.c b/Xext/sync.c index 5f4ce56..667f8ab 100644 --- a/Xext/sync.c +++ b/Xext/sync.c @@ -962,28 +962,24 @@ SyncComputeBracketValues(SyncCounter *pCounter, Bool startOver) pnewltval = &psci->bracket_less; } } - else if ( (pTrigger->test_type == XSyncPositiveTransition && + else if (pTrigger->test_type == XSyncNegativeTransition && ct != XSyncCounterNeverIncreases) - || - (pTrigger->test_type == XSyncNegativeTransition && + { + if (XSyncValueGreaterThan(pCounter->value, pTrigger->test_value) && + XSyncValueGreaterThan(pTrigger->test_value, psci->bracket_less)) + { + psci->bracket_less = pTrigger->test_value; + pnewltval = &psci->bracket_less; + } + } + else if (pTrigger->test_type == XSyncPositiveTransition && ct != XSyncCounterNeverDecreases) - ) { - if (XSyncValueLessThan(pCounter->value, pTrigger->test_value)) + if (XSyncValueLessThan(pCounter->value, pTrigger->test_value) && + XSyncValueLessThan(pTrigger->test_value, psci->bracket_greater)) { - if (XSyncValueLessThan(pTrigger->test_value, - psci->bracket_greater)) - { - psci->bracket_greater = pTrigger->test_value; - pnewgtval = &psci->bracket_greater; - } - else - if (XSyncValueGreaterThan(pTrigger->test_value, - psci->bracket_less)) - { - psci->bracket_less = pTrigger->test_value; - pnewltval = &psci->bracket_less; - } + psci->bracket_greater = pTrigger->test_value; + pnewgtval = &psci->bracket_greater; } } } /* end for each trigger */ -- cgit v0.8.2
From 9c5fcee00d247c5bcf8a9af3a2e332ea4416f7e8 Mon Sep 17 00:00:00 2001 From: Richard Hughes <rich...@hughsie.com> Date: Mon, 17 Aug 2009 09:15:32 +0100 Subject: [PATCH 2/2] Do not reset lastDeviceEventTime when we do dixSaveScreens When we turn off DPMS with DPMSModeOff and do dixSaveScreens, don't reset the event time else session clients using IDLETIME will be reset. --- dix/window.c | 2 -- 1 files changed, 0 insertions(+), 2 deletions(-) diff --git a/dix/window.c b/dix/window.c index 32e26d9..1a645f6 100644 --- a/dix/window.c +++ b/dix/window.c @@ -3128,8 +3128,6 @@ dixSaveScreens(ClientPtr client, int on, int mode) if (on == SCREEN_SAVER_FORCER) { - UpdateCurrentTimeIf(); - lastDeviceEventTime = currentTime; if (mode == ScreenSaverReset) what = SCREEN_SAVER_OFF; else -- 1.6.2.5
signature.asc
Description: Ceci est une partie de message numériquement signée