X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=hacks%2Fstarfish.c;h=071dccb6f83819f4f60d37f6d911b5691cd74eed;hb=6f5482d73adb0165c0130bb47d852644ab0c4869;hp=f013482baff954bd5088628566f9d16f68836df5;hpb=49f5b54f312fe4ac2e9bc47581a72451bd0e8439;p=xscreensaver diff --git a/hacks/starfish.c b/hacks/starfish.c index f013482b..071dccb6 100644 --- a/hacks/starfish.c +++ b/hacks/starfish.c @@ -1,4 +1,4 @@ -/* xscreensaver, Copyright (c) 1997, 1998, 2006 Jamie Zawinski +/* xscreensaver, Copyright (c) 1997-2008 Jamie Zawinski * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -345,6 +345,8 @@ reset_starfish (struct state *st) if (st->colors) free (st->colors); st->colors = 0; + XFreeGC (st->dpy, st->gc); + st->gc = 0; } st->ncolors = get_integer_resource (st->dpy, "colors", "Colors"); @@ -434,7 +436,7 @@ starfish_init (Display *dpy, Window window) st->delay2 = get_integer_resource (st->dpy, "delay2", "Delay") * 1000000; /* st->duration = get_seconds_resource (st->dpy, "duration", "Seconds");*/ st->duration = get_integer_resource (st->dpy, "duration", "Seconds"); - st->direction = (random() % 1) ? 1 : -1; + st->direction = (random() & 1) ? 1 : -1; s = get_string_resource (st->dpy, "mode", "Mode"); if (s && !strcasecmp (s, "blob")) @@ -479,6 +481,8 @@ starfish_draw (Display *dpy, Window window, void *closure) s = reset_starfish (st); else s = make_window_starfish (st); + + st->starfish = s; } } @@ -489,6 +493,10 @@ static void starfish_reshape (Display *dpy, Window window, void *closure, unsigned int w, unsigned int h) { + struct state *st = (struct state *) closure; + free_starfish (st->starfish); + st->starfish = 0; + st->starfish = reset_starfish (st); } static Bool @@ -510,6 +518,7 @@ starfish_free (Display *dpy, Window window, void *closure) static const char *starfish_defaults [] = { ".background: black", ".foreground: white", + "*fpsSolid: true", "*delay: 10000", "*thickness: 0", /* pixels, 0 = random */ "*rotation: -1", /* degrees, -1 = "random" */