From http://www.jwz.org/xscreensaver/xscreensaver-5.38.tar.gz
[xscreensaver] / hacks / starfish.c
index 103dd13d6d90fadd012cdbe02c2a81151fdfe539..5e94144401a4d51ce67e681f8481a2ca0b720534 100644 (file)
@@ -1,4 +1,4 @@
-/* xscreensaver, Copyright (c) 1997-2013 Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver, Copyright (c) 1997-2015 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
@@ -71,7 +71,6 @@ make_starfish (struct state *st, int maxx, int maxy, int size)
 {
   struct starfish *s = (struct starfish *) calloc(1, sizeof(*s));
   int i;
-  int mid;
 
   s->blob_p = st->blob_p;
   s->elasticity = SCALE * get_float_resource (st->dpy, "thickness", "Thickness");
@@ -121,7 +120,6 @@ make_starfish (struct state *st, int maxx, int maxy, int size)
   s->min_r = 0;
 
   if (s->min_r < (5*SCALE)) s->min_r = (5*SCALE);
-  mid = ((s->min_r + s->max_r) / 2);
 
   s->x = maxx/2;
   s->y = maxy/2;
@@ -324,6 +322,13 @@ make_window_starfish (struct state *st)
   size = (xgwa.width < xgwa.height ? xgwa.width : xgwa.height);
   if (st->blob_p) size /= 2;
   else size *= 1.3;
+
+  if (xgwa.width < 100 || xgwa.height < 100) /* tiny window */
+    {
+      size = (xgwa.width > xgwa.height ? xgwa.width : xgwa.height);
+      if (size < 100) size = 100;
+    }
+
   return make_starfish (st, xgwa.width, xgwa.height, size);
 }
 
@@ -390,6 +395,10 @@ reset_starfish (struct state *st)
   flags |= GCFillRule;
   gcv.fill_rule = EvenOddRule;
   st->gc = XCreateGC (st->dpy, st->window, flags, &gcv);
+#ifdef HAVE_JWXYZ
+  if (!st->blob_p)
+    jwxyz_XSetAntiAliasing (st->dpy, st->gc, False);
+#endif
 
   return make_window_starfish (st);
 }
@@ -528,7 +537,7 @@ static const char *starfish_defaults [] = {
   "*duration:          30",
   "*delay2:            5",
   "*mode:              random",
-#ifdef USE_IPHONE
+#ifdef HAVE_MOBILE
   "*ignoreRotation:     True",
 #endif
   0