render: Don't filter 0 return from GetTimeInMillis
In animate cursor block handler code assumes GetTimeInMillis returns always nonzero value. This isn't true when time wraps around. To prevent any problems in case GetTimeInMillis would return zero use activeDevice variable to track if we have received time. Signed-off-by: Pauli Nieminen <ext-pauli.nieminen@nokia.com> Reviewed-by: Daniel Stone <daniel@fooishbar.org>
This commit is contained in:
parent
91beeee05f
commit
aa8cea953d
|
@ -150,6 +150,7 @@ AnimCurScreenBlockHandler (int screenNum,
|
|||
ScreenPtr pScreen = screenInfo.screens[screenNum];
|
||||
AnimCurScreenPtr as = GetAnimCurScreen(pScreen);
|
||||
DeviceIntPtr dev;
|
||||
Bool activeDevice = FALSE;
|
||||
CARD32 now = 0,
|
||||
soonest = ~0; /* earliest time to wakeup again */
|
||||
|
||||
|
@ -157,7 +158,10 @@ AnimCurScreenBlockHandler (int screenNum,
|
|||
{
|
||||
if (IsPointerDevice(dev) && pScreen == dev->spriteInfo->anim.pScreen)
|
||||
{
|
||||
if (!now) now = GetTimeInMillis ();
|
||||
if (!activeDevice) {
|
||||
now = GetTimeInMillis ();
|
||||
activeDevice = TRUE;
|
||||
}
|
||||
|
||||
if ((INT32) (now - dev->spriteInfo->anim.time) >= 0)
|
||||
{
|
||||
|
@ -187,7 +191,7 @@ AnimCurScreenBlockHandler (int screenNum,
|
|||
}
|
||||
}
|
||||
|
||||
if (now)
|
||||
if (activeDevice)
|
||||
AdjustWaitForDelay (pTimeout, soonest - now);
|
||||
|
||||
Unwrap (as, pScreen, BlockHandler);
|
||||
|
|
Loading…
Reference in New Issue
Block a user