]> git.pld-linux.org Git - packages/xorg-xserver-server.git/blob - xorg-xserver-server-idletime.patch
- up to 1.6.3.901 (it's RC for 1.6.4)
[packages/xorg-xserver-server.git] / xorg-xserver-server-idletime.patch
1 From db568f9eabf3450d8a023597ff007df355b13ea8 Mon Sep 17 00:00:00 2001
2 From: Peter Hutterer <peter.hutterer@who-t.net>
3 Date: Thu, 13 Aug 2009 06:37:00 +0000
4 Subject: Xext: fix up wrong conditions for negative sync transitions.
5
6 If the counter had a value higher than the trigger value for a negative
7 transition, the trigger value did not get set.
8
9 The correct sequence of checks is:
10 if (positive transition)
11    if (counter value < trigger value)
12       set up trigger
13 if (negative transition)
14    if (counter value > trigger value)
15       set up trigger
16
17 Red Hat Bug 501601 <https://bugzilla.redhat.com/show_bug.cgi?id=501601>
18
19 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
20 ---
21 diff --git a/Xext/sync.c b/Xext/sync.c
22 index 5f4ce56..667f8ab 100644
23 --- a/Xext/sync.c
24 +++ b/Xext/sync.c
25 @@ -962,28 +962,24 @@ SyncComputeBracketValues(SyncCounter *pCounter, Bool startOver)
26                 pnewltval = &psci->bracket_less;
27             }
28         }
29 -       else if ( (pTrigger->test_type == XSyncPositiveTransition &&
30 +       else if (pTrigger->test_type == XSyncNegativeTransition &&
31                    ct != XSyncCounterNeverIncreases)
32 -                ||
33 -                (pTrigger->test_type == XSyncNegativeTransition &&
34 +       {
35 +           if (XSyncValueGreaterThan(pCounter->value, pTrigger->test_value) &&
36 +               XSyncValueGreaterThan(pTrigger->test_value, psci->bracket_less))
37 +           {
38 +               psci->bracket_less = pTrigger->test_value;
39 +               pnewltval = &psci->bracket_less;
40 +           }
41 +       }
42 +        else if (pTrigger->test_type == XSyncPositiveTransition &&
43                   ct != XSyncCounterNeverDecreases)
44 -                )
45         {
46 -           if (XSyncValueLessThan(pCounter->value, pTrigger->test_value))
47 +           if (XSyncValueLessThan(pCounter->value, pTrigger->test_value) &&
48 +               XSyncValueLessThan(pTrigger->test_value, psci->bracket_greater))
49             {
50 -               if (XSyncValueLessThan(pTrigger->test_value,
51 -                                      psci->bracket_greater))
52 -               {
53 -                   psci->bracket_greater = pTrigger->test_value;
54 -                   pnewgtval = &psci->bracket_greater;
55 -               }
56 -               else
57 -               if (XSyncValueGreaterThan(pTrigger->test_value,
58 -                                         psci->bracket_less))
59 -               {
60 -                   psci->bracket_less = pTrigger->test_value;
61 -                   pnewltval = &psci->bracket_less;
62 -               }
63 +               psci->bracket_greater = pTrigger->test_value;
64 +               pnewgtval = &psci->bracket_greater;
65             }
66         }
67      } /* end for each trigger */
68 --
69 cgit v0.8.2
This page took 0.033616 seconds and 3 git commands to generate.