X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=hacks%2Fwander.c;h=efe9b94bbb9216ef6bb6b9cf9b40a1edae0025a8;hb=6afd6db0ae9396cd7ff897ade597cd5483f49b0e;hp=8fa8995ae043b9eec72b5473c8356b3c57b378c2;hpb=6f5482d73adb0165c0130bb47d852644ab0c4869;p=xscreensaver diff --git a/hacks/wander.c b/hacks/wander.c index 8fa8995a..efe9b94b 100644 --- a/hacks/wander.c +++ b/hacks/wander.c @@ -33,6 +33,7 @@ struct state { int height; unsigned int length; unsigned int reset; + Bool reset_p; unsigned int size; int width; int delay; @@ -64,12 +65,13 @@ wander_init (Display *dpy, Window window) st->color_map = attributes.colormap; if (st->color_count) { - free_colors (st->dpy, st->color_map, st->colors, st->color_count); + free_colors (attributes.screen, st->color_map, + st->colors, st->color_count); st->color_count = 0; } st->context = XCreateGC (st->dpy, st->window, 0, &values); st->color_count = MAXIMUM_COLOR_COUNT; - make_color_loop (st->dpy, st->color_map, + make_color_loop (attributes.screen, attributes.visual, st->color_map, 0, 1, 1, 120, 1, 1, 240, 1, 1, @@ -168,8 +170,9 @@ wander_draw (Display *dpy, Window window, void *closure) } } - if ((random () % st->reset_limit) == 0) + if (st->reset_p || (random () % st->reset_limit) == 0) { + st->reset_p = 0; st->eraser = erase_window (st->dpy, st->window, st->eraser); st->color = st->colors [random () % st->color_count].pixel; st->x = random () % st->width; @@ -220,6 +223,12 @@ wander_reshape (Display *dpy, Window window, void *closure, static Bool wander_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; } @@ -240,6 +249,9 @@ static const char *wander_defaults [] = ".reset: 2500000", ".circles: False", ".size: 1", +#ifdef USE_IPHONE + "*ignoreRotation: True", +#endif 0 };