From http://www.jwz.org/xscreensaver/xscreensaver-5.35.tar.gz
[xscreensaver] / hacks / decayscreen.c
index d4927b6070b64fe1ed609c92d1e75d8562d2e8b6..f0d4e95c6b2b4da8ca000f46f115b36628b47c2c 100644 (file)
@@ -1,4 +1,4 @@
-/* xscreensaver, Copyright (c) 1992-2013 Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver, Copyright (c) 1992-2014 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
@@ -36,6 +36,7 @@
  */
 
 #include "screenhack.h"
+#include <time.h>
 
 struct state {
   Display *dpy;
@@ -140,7 +141,7 @@ decayscreen_init (Display *dpy, Window window)
     gcflags |= GCSubwindowMode;
   st->gc = XCreateGC (st->dpy, st->window, gcflags, &gcv);
 
-  st->start_time = time ((time_t) 0);
+  st->start_time = time ((time_t *) 0);
   decayscreen_load_image (st);
 
   return st;
@@ -177,7 +178,7 @@ decayscreen_draw (Display *dpy, Window window, void *closure)
                                                   0, 0, 0, 0, 0);
         if (! st->img_loader) {  /* just finished */
 
-          st->start_time = time ((time_t) 0);
+          st->start_time = time ((time_t *) 0);
           if (st->random_p)
             st->mode = random() % (FUZZ+1);
 
@@ -199,7 +200,7 @@ decayscreen_draw (Display *dpy, Window window, void *closure)
     }
 
     if (!st->img_loader &&
-        st->start_time + st->duration < time ((time_t) 0)) {
+        st->start_time + st->duration < time ((time_t *) 0)) {
       decayscreen_load_image (st);
     }
 
@@ -341,6 +342,12 @@ decayscreen_reshape (Display *dpy, Window window, void *closure,
 static Bool
 decayscreen_event (Display *dpy, Window window, void *closure, XEvent *event)
 {
+  struct state *st = (struct state *) closure;
+  if (screenhack_event_helper (dpy, window, event))
+    {
+      st->start_time = 0;
+      return True;
+    }
   return False;
 }
 
@@ -366,8 +373,9 @@ static const char *decayscreen_defaults [] = {
   "*delay:                     10000",
   "*mode:                      random",
   "*duration:                  120",
-#ifdef USE_IPHONE
+#ifdef HAVE_MOBILE
   "*ignoreRotation:             True",
+  "*rotateImages:               True",
 #endif
   0
 };