X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=hacks%2Fvermiculate.c;h=4d816ff63adbf5271c5496a77c04f8e1347d7e0a;hb=6afd6db0ae9396cd7ff897ade597cd5483f49b0e;hp=26011446cf4e9709842d6fcbea294abedc710f02;hpb=49f5b54f312fe4ac2e9bc47581a72451bd0e8439;p=xscreensaver diff --git a/hacks/vermiculate.c b/hacks/vermiculate.c index 26011446..4d816ff6 100644 --- a/hacks/vermiculate.c +++ b/hacks/vermiculate.c @@ -209,9 +209,8 @@ static void randpal (struct state *st) { int ncolors = tailmax - 1; - make_random_colormap (st->dpy, - st->xgwa.visual, - st->mycmap, &st->mycolors[1], &ncolors, True, True, 0, True); + make_random_colormap (st->xgwa.screen, st->xgwa.visual, st->mycmap, + &st->mycolors[1], &ncolors, True, True, 0, True); if (ncolors < tailmax - 1) { int c; @@ -264,7 +263,7 @@ bordupdate (struct state *st) for (x = xmin; x <= xmax; x++) sp (st, x, ybord, st->bordcol); for (y = ymin; y <= ymax; y++) - sp (st, ybord, y, st->bordcol); + sp (st, xbord, y, st->bordcol); } } @@ -795,7 +794,7 @@ vermiculate_init (Display *d, Window w) st->mygc = XCreateGC (st->dpy, st->window, 0, &mygcv); } - st->point = (unsigned char *) malloc (st->wid * st->hei); + st->point = (unsigned char *) calloc (1, st->wid * st->hei); maininit (st); palupdate (st, True); consume_instring(st); @@ -807,11 +806,22 @@ static void vermiculate_reshape (Display *dpy, Window window, void *closure, unsigned int w, unsigned int h) { + struct state *st = (struct state *) closure; + st->wid = w; + st->hei = h; + free (st->point); + st->point = (unsigned char *) calloc (1, st->wid * st->hei); } static Bool vermiculate_event (Display *dpy, Window window, void *closure, XEvent *event) { + struct state *st = (struct state *) closure; + if (screenhack_event_helper (dpy, window, event)) + { + st->reset_p = 1; + return True; + } return False; } @@ -878,8 +888,9 @@ consume_instring(struct state *st) block in which it's invoked, since it declares variables: */ #define forallinbank(LDP) linedata *LDP; int bankc; \ for (bankc = 1; \ - (LDP = &st->thread[st->bank[bankc - 1] - 1], \ - bankc <= st->bnkt); bankc++) + ((bankc <= st->bnkt) ? ( \ + (LDP = &st->thread[st->bank[bankc - 1] - 1], 1) \ + ) : 0) ; bankc++) { forallinbank (L) L->slice = degs / (st->ch - '0'); } @@ -1198,8 +1209,12 @@ vermiculate_free (Display *dpy, Window window, void *closure) static const char *vermiculate_defaults[] = { ".background: Black", "*ticks: 20000", + "*fpsSolid: true", "*speed: 0", "*instring: ", +#ifdef USE_IPHONE + "*ignoreRotation: True", +#endif 0 };