コード例 #1
0
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;
}
コード例 #2
0
ファイル: snow.c プロジェクト: jordigh/fusilli
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;
}