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