From http://www.jwz.org/xscreensaver/xscreensaver-5.30.tar.gz
[xscreensaver] / hacks / ifs.c
index 099b0d1c8c265282c2162ab0bffeaba0374e419f..63cb1a8c7f9082fd106a6b2d2414abc4f84753cd 100644 (file)
@@ -106,6 +106,9 @@ static const char *ifs_defaults [] = {
   "*doubleBuffer:      False",
 #else
   "*doubleBuffer:      True",
+#endif
+#ifdef USE_IPHONE
+  "*ignoreRotation:     True",
 #endif
   0
 };
@@ -435,7 +438,7 @@ ifs_init (Display *d_arg, Window w_arg)
   if (st->colours) free(st->colours);
   st->colours = (XColor *)calloc(st->ncolours, sizeof(XColor));
   if (!st->colours) exit(1);
-  make_smooth_colormap (st->dpy, xgwa.visual, xgwa.colormap, 
+  make_smooth_colormap (xgwa.screen, xgwa.visual, xgwa.colormap, 
                         st->colours, &st->ncolours,
                         True, 0, False);
 
@@ -513,6 +516,20 @@ ifs_reshape (Display *dpy, Window window, void *closure,
 static Bool
 ifs_event (Display *dpy, Window window, void *closure, XEvent *event)
 {
+  struct state *st = (struct state *)closure;
+  if (screenhack_event_helper (dpy, window, event))
+    {
+      int i;
+      for (i = 0; i < st->lensnum; i++) {
+        CreateLens(st,
+                   myrandom(1)-0.5,
+                   myrandom(1),
+                   myrandom(4)-2,
+                   myrandom(4)+2,
+                   &st->lenses[i]);
+      }
+      return True;
+    }
   return False;
 }