http://www.jwz.org/xscreensaver/xscreensaver-5.07.tar.gz
[xscreensaver] / hacks / starfish.c
index f013482baff954bd5088628566f9d16f68836df5..2ba693c0811a18ca032a0e8b9eb18503fced0b16 100644 (file)
@@ -1,4 +1,4 @@
-/* xscreensaver, Copyright (c) 1997, 1998, 2006 Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver, Copyright (c) 1997-2008 Jamie Zawinski <jwz@jwz.org>
  *
  * 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;
         }
     }
 
@@ -510,6 +514,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" */