static Bool stepSnowPositions (void *closure) { CompScreen *s = closure; int i, numFlakes; SnowFlake *snowFlake; Bool onTop; SNOW_SCREEN (s); if (!ss->active) return TRUE; snowFlake = ss->allSnowFlakes; numFlakes = starGetNumSnowflakes (s->display); onTop = starGetSnowOverWindows (s->display); for (i = 0; i < numFlakes; i++) snowThink(ss, snowFlake++); if (ss->active && !onTop) { CompWindow *w; for (w = s->windows; w; w = w->next) { if (w->type & CompWindowTypeDesktopMask) addWindowDamage (w); } } else if (ss->active) damageScreen (s); return TRUE; }
static Bool stepSnowPositions (void *closure) { CompScreen *s = closure; int i, numFlakes; SnowFlake *snowFlake; Bool onTop; SNOW_SCREEN (s); if (!ss->active) return TRUE; const BananaValue * option_num_snowflakes = bananaGetOption (bananaIndex, "num_snowflakes", -1); const BananaValue * option_snow_over_windows = bananaGetOption (bananaIndex, "snow_over_windows", -1); snowFlake = ss->allSnowFlakes; numFlakes = option_num_snowflakes->i; onTop = option_snow_over_windows->b; for (i = 0; i < numFlakes; i++) snowThink(ss, snowFlake++); if (ss->active && !onTop) { CompWindow *w; for (w = s->windows; w; w = w->next) { if (w->type & CompWindowTypeDesktopMask) addWindowDamage (w); } } else if (ss->active) damageScreen (s); return TRUE; }