From http://www.jwz.org/xscreensaver/xscreensaver-5.35.tar.gz
[xscreensaver] / hacks / popsquares.c
index 15cb61b4a6f36cc1219987811e3c74250f3ecb21..065ad06d4e9189642e06dffb75826d20a57ccf1b 100644 (file)
@@ -69,7 +69,7 @@ popsquares_init (Display *dpy, Window window)
   st->twitch = get_boolean_resource(st->dpy, "twitch", "Boolean");
   st->dbuf = get_boolean_resource(st->dpy, "doubleBuffer", "Boolean");
 
-# ifdef HAVE_COCOA     /* Don't second-guess Quartz's double-buffering */
+# ifdef HAVE_JWXYZ     /* Don't second-guess Quartz's double-buffering */
   st->dbuf = False;
 # endif
 
@@ -86,6 +86,8 @@ popsquares_init (Display *dpy, Window window)
   st->gw = st->sw ? st->xgwa.width / st->sw : 0;
   st->gh = st->sh ? st->xgwa.height / st->sh : 0;
   st->nsquares = st->gw * st->gh;
+  if (st->nsquares < 1) st->nsquares = 1;
+  if (st->ncolors < 1) st->ncolors = 1;
 
   gcv.foreground = fg.pixel;
   gcv.background = bg.pixel;
@@ -96,7 +98,7 @@ popsquares_init (Display *dpy, Window window)
 
   rgb_to_hsv (fg.red, fg.green, fg.blue, &h1, &s1, &v1);
   rgb_to_hsv (bg.red, bg.green, bg.blue, &h2, &s2, &v2);
-  make_color_ramp (st->dpy, st->xgwa.colormap,
+  make_color_ramp (st->xgwa.screen, st->xgwa.visual, st->xgwa.colormap,
                    h1, s1, v1,
                    h2, s2, v2,
                    st->colors, &st->ncolors,  /* would this be considered a value-result argument? */
@@ -196,6 +198,7 @@ popsquares_reshape (Display *dpy, Window window, void *closure,
   st->gh = st->sh ? st->xgwa.height / st->sh : 0;
   st->nsquares = st->gw * st->gh;
   free (st->squares);
+  if (st->nsquares < 1) st->nsquares = 1;
   st->squares = (square *) calloc (st->nsquares, sizeof(square));
 
   for (y = 0; y < st->gh; y++)
@@ -246,6 +249,9 @@ static const char *popsquares_defaults [] = {
   "*useDBE: True",
   "*useDBEClear: True",
 #endif /* HAVE_DOUBLE_BUFFER_EXTENSION */
+#ifdef HAVE_MOBILE
+  "*ignoreRotation: True",
+#endif
   0
 };