X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=hacks%2Fshadebobs.c;h=7a1a0ffc13c258bad17567ba44150f7e6ee809d3;hb=aa75c7476aeaa84cf3abc192b376a8b03c325213;hp=881740c9996ed97fc30fbadae4b5b3f838928c4b;hpb=50be9bb40dc60130c99ffa568e6677779904ff70;p=xscreensaver diff --git a/hacks/shadebobs.c b/hacks/shadebobs.c index 881740c9..7a1a0ffc 100644 --- a/hacks/shadebobs.c +++ b/hacks/shadebobs.c @@ -52,6 +52,9 @@ static const char *shadebobs_defaults [] = { "*cycles: 10", "*ncolors: 64", /* changing this doesn't work particularly well */ "*delay: 10000", +#ifdef HAVE_MOBILE + "*ignoreRotation: True", +#endif 0 }; @@ -144,8 +147,11 @@ static void MoveShadeBob( struct state *st, SShadeBob *pShadeBob ) pShadeBob->nAngle += pShadeBob->nAngleInc; pShadeBob->nAngleDelta -= pShadeBob->nAngleInc; - if( pShadeBob->nAngle >= st->iDegreeCount ) pShadeBob->nAngle -= st->iDegreeCount; - else if( pShadeBob->nAngle < 0 ) pShadeBob->nAngle += st->iDegreeCount; + /* Since it can happen that nAngle < 0 and nAngle + iDegreeCount >= iDegreeCount + on floating point, we set some marginal value. + */ + if( pShadeBob->nAngle + 0.5 >= st->iDegreeCount ) pShadeBob->nAngle -= st->iDegreeCount; + else if( pShadeBob->nAngle < -0.5 ) pShadeBob->nAngle += st->iDegreeCount; if( ( pShadeBob->nAngleInc>0.0F && pShadeBob->nAngleDeltanAngleInc ) || ( pShadeBob->nAngleInc<=0.0F && pShadeBob->nAngleDelta>pShadeBob->nAngleInc ) )