From http://www.jwz.org/xscreensaver/xscreensaver-5.35.tar.gz
[xscreensaver] / hacks / squiral.c
index 2a0b0fd29bb61016afe8abe1ed8dddb8925c8f38..48cd5f8c9049e11b5560973d0e0820a89bff58e1 100644 (file)
@@ -14,7 +14,7 @@
 #include "erase.h"
 #include "yarandom.h"
 
-#define R(x)  (abs(random())%x)
+#define R(x)  (random()%x)
 #define PROB(x) (frand(1.0) < (x))
 
 #define NCOLORSMAX 255
@@ -156,7 +156,7 @@ squiral_init (Display *dpy, Window window)
     st->erase_gc = XCreateGC (st->dpy, st->window, GCForeground, &gcv);
     cmap = xgwa.colormap;
     if( st->ncolors ) {
-        free_colors(st->dpy, cmap, st->colors, st->ncolors);
+        free_colors(xgwa.screen, cmap, st->colors, st->ncolors);
         st->ncolors = 0;
     }
     if( mono_p ) {
@@ -166,7 +166,8 @@ squiral_init (Display *dpy, Window window)
       st->ncolors = get_integer_resource(st->dpy, "ncolors", "Integer");
       if (st->ncolors < 0 || st->ncolors > NCOLORSMAX)
         st->ncolors = NCOLORSMAX;
-      make_uniform_colormap(st->dpy, xgwa.visual, cmap, st->colors, &st->ncolors, True,
+      make_uniform_colormap(xgwa.screen, xgwa.visual, cmap,
+                            st->colors, &st->ncolors, True,
          &writeable, False);
       if (st->ncolors <= 0) {
         st->ncolors = 1;
@@ -238,6 +239,13 @@ squiral_reshape (Display *dpy, Window window, void *closure,
 static Bool
 squiral_event (Display *dpy, Window window, void *closure, XEvent *event)
 {
+  struct state *st = (struct state *) closure;
+  if (screenhack_event_helper (dpy, window, event))
+    {
+      squiral_init_1 (st);
+      XClearWindow (dpy, window);
+      return True;
+    }
   return False;
 }
 
@@ -260,6 +268,9 @@ static const char *squiral_defaults[] = {
   "*disorder:   0.005",
   "*cycle:      False",
   "*handedness: 0.5",
+#ifdef HAVE_MOBILE
+  "*ignoreRotation: True",
+#endif
   0
 };