int now = get_time_in_milliseconds();
fade *f, *next;
int steps;
+ Bool need_dequeue;
#if 0
printf ("run fades\n");
printf ("opacity now %g\n", f->cur);
#endif
w->opacity = f->cur * OPAQUE;
+ need_dequeue = False;
if (f->step > 0)
{
if (f->cur >= f->finish)
{
w->opacity = f->finish*OPAQUE;
- dequeue_fade (dpy, f);
+ need_dequeue = True;
}
}
else
if (f->cur <= f->finish)
{
w->opacity = f->finish*OPAQUE;
- dequeue_fade (dpy, f);
+ need_dequeue = True;
}
}
determine_mode (dpy, w);
w->shadow = None;
w->extents = win_extents(dpy, w);
}
+ /* Must do this last as it might destroy f->w in callbacks */
+ if (need_dequeue)
+ dequeue_fade (dpy, f);
}
fade_time = now + fade_delta;
}
/* never painted, ignore it */
if (!w->damaged)
continue;
+ /* if invisible, ignore it */
+ if (w->a.x + w->a.width < 1 || w->a.y + w->a.height < 1
+ || w->a.x >= root_width || w->a.y >= root_height)
+ continue;
if (!w->picture)
{
XRenderPictureAttributes pa;
case CompSimple:
break;
case CompServerShadows:
+ /* dont' bother drawing shadows on desktop windows */
+ if (w->windowType == winDesktopAtom)
+ break;
set_ignore (dpy, NextRequest (dpy));
if (w->opacity != OPAQUE && !w->shadowPict)
w->shadowPict = solid_picture (dpy, True,
w->shadow_width, w->shadow_height);
break;
case CompClientShadows:
- if (w->shadow)
+ /* don't bother drawing shadows on desktop windows */
+ if (w->shadow && w->windowType != winDesktopAtom)
{
XRenderComposite (dpy, PictOpOver, blackPicture, w->shadow, rootBuffer,
0, 0, 0, 0,
void
usage (char *program)
{
- fprintf (stderr, "%s v1.1\n", program);
+ fprintf (stderr, "%s v1.1.2\n", program);
fprintf (stderr, "usage: %s [options]\n", program);
fprintf (stderr, "Options\n");
fprintf (stderr, " -d display\n Specifies which display should be managed.\n");