From http://www.jwz.org/xscreensaver/xscreensaver-5.36.tar.gz
[xscreensaver] / hacks / decayscreen.c
index fe3d108d64b4c0520d7c87faff9f7960b22ea44e..832b7ca7d3a71b72dead0b42db8623add01f7461 100644 (file)
@@ -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);
     }
 
@@ -329,6 +330,7 @@ decayscreen_reshape (Display *dpy, Window window, void *closure,
                  unsigned int w, unsigned int h)
 {
   struct state *st = (struct state *) closure;
+  if (! st->saved) return; /* Image might not be loaded yet */
   XClearWindow (st->dpy, st->window);
   XCopyArea (st->dpy, st->saved, st->window, st->gc,
              0, 0, st->saved_w, st->saved_h,
@@ -372,7 +374,7 @@ static const char *decayscreen_defaults [] = {
   "*delay:                     10000",
   "*mode:                      random",
   "*duration:                  120",
-#ifdef USE_IPHONE
+#ifdef HAVE_MOBILE
   "*ignoreRotation:             True",
   "*rotateImages:               True",
 #endif