X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?p=xscreensaver;a=blobdiff_plain;f=hacks%2Ftwang.c;fp=hacks%2Ftwang.c;h=cc30b002a6740de4f3e985d0caa53563f9b2f2a7;hp=a9e2be3cf0b0eb8182e174b16302ccc00990243b;hb=d5186197bc394e10a4402f7f6d23fbb14103bc50;hpb=6afd6db0ae9396cd7ff897ade597cd5483f49b0e diff --git a/hacks/twang.c b/hacks/twang.c index a9e2be3c..cc30b002 100644 --- a/hacks/twang.c +++ b/hacks/twang.c @@ -107,14 +107,24 @@ struct state { static void grabImage_start (struct state *st, XWindowAttributes *xwa) { + Pixmap p; + GC gc; + XGCValues gcv; XFillRectangle (st->dpy, st->window, st->backgroundGC, 0, 0, st->windowWidth, st->windowHeight); + p = XCreatePixmap (st->dpy, st->window, + xwa->width, xwa->height, xwa->depth); + gc = XCreateGC (st->dpy, st->window, 0, &gcv); + XCopyArea (st->dpy, st->window, p, gc, 0, 0, + xwa->width, xwa->height, 0, 0); st->backgroundImage = - XGetImage (st->dpy, st->window, 0, 0, st->windowWidth, st->windowHeight, + XGetImage (st->dpy, p, 0, 0, st->windowWidth, st->windowHeight, ~0L, ZPixmap); + XFreeGC (st->dpy, gc); + XFreePixmap (st->dpy, p); - st->start_time = time ((time_t) 0); + st->start_time = time ((time_t *) 0); st->img_loader = load_image_async_simple (0, xwa->screen, st->window, st->window, 0, 0); } @@ -125,7 +135,7 @@ grabImage_done (struct state *st) XWindowAttributes xwa; XGetWindowAttributes (st->dpy, st->window, &xwa); - st->start_time = time ((time_t) 0); + st->start_time = time ((time_t *) 0); if (st->sourceImage) XDestroyImage (st->sourceImage); st->sourceImage = XGetImage (st->dpy, st->window, 0, 0, st->windowWidth, st->windowHeight, ~0L, ZPixmap); @@ -616,7 +626,7 @@ twang_draw (Display *dpy, Window window, void *closure) } if (!st->img_loader && - st->start_time + st->duration < time ((time_t) 0)) { + st->start_time + st->duration < time ((time_t *) 0)) { XWindowAttributes xgwa; XGetWindowAttributes (st->dpy, st->window, &xgwa); grabImage_start (st, &xgwa);