http://ftp.x.org/contrib/applications/xscreensaver-3.19.tar.gz
[xscreensaver] / hacks / penetrate.c
index 2b104dc90c61b8adc65f673f686e6f3057f1c0c3..6ab47c2bfbb7aebdfabd8470edd4c6b80d22f6cd 100644 (file)
@@ -612,7 +612,7 @@ static void LoopBooms(Display *dpy, Window window, Colormap cmap, int xlim, int
         if (!m->alive)
                continue;
         
-        if (loop & 1)
+        if (loop & 1) {
                if (m->outgoing) {
                  m->rad++;
                  if (m->rad >= m->max)
@@ -628,6 +628,7 @@ static void LoopBooms(Display *dpy, Window window, Colormap cmap, int xlim, int
                  if (m->rad <= 0)
                         m->alive = 0;
                }
+        }
   }
 }
 
@@ -708,7 +709,8 @@ static void NewLevel(Display *dpy, Window window, Colormap cmap, int xlim, int y
         width = XTextWidth(font, buf, strlen(buf));
         XDrawString(dpy, window, level_gc, xlim / 2 - width / 2, ylim / 2 - font_height(font) / 2,
                                         buf, strlen(buf));
-        XSync(dpy, True);
+        XSync(dpy, False);
+         screenhack_handle_events(dpy);
         sleep(1);
   }
 
@@ -733,14 +735,17 @@ static void NewLevel(Display *dpy, Window window, Colormap cmap, int xlim, int y
                         city[i].alive = 1;
                         AddScore(dpy, window, cmap, xlim, ylim, 100 * level);
                         DrawCities(dpy, window, cmap, xlim, ylim);
-                        XSync(dpy, True);
+                        XSync(dpy, False);
+                         screenhack_handle_events(dpy);
                         usleep(kCityPause);
                  }
                }
         }
         else {
                /* we're dead */
+                screenhack_handle_events(dpy);
                sleep(3);
+                screenhack_handle_events(dpy);
                /* start new */
                gamez++;
                Improve();
@@ -766,7 +771,8 @@ static void NewLevel(Display *dpy, Window window, Colormap cmap, int xlim, int y
         width = XTextWidth(font, buf, strlen(buf));
         XDrawString(dpy, window, level_gc, xlim / 2 - width / 2, ylim / 4, buf, strlen(buf));
         DrawCities(dpy, window, cmap, xlim, ylim);
-        XSync(dpy, True);
+        XSync(dpy, False);
+         screenhack_handle_events(dpy);
         sleep(1);
   }
 
@@ -794,7 +800,8 @@ static void NewLevel(Display *dpy, Window window, Colormap cmap, int xlim, int y
                sprintf(buf, "Bonus Round");
                width = XTextWidth(font, buf, strlen(buf));
                XDrawString(dpy, window, level_gc, xlim / 2 - width / 2, ylim / 2 - font_height(font) / 2, buf, strlen(buf));
-               XSync(dpy, True);
+               XSync(dpy, False);
+                screenhack_handle_events(dpy);
                sleep(1);
                XFillRectangle(dpy, window, erase_gc,
                                                        0, 0, xlim, ylim - 100);
@@ -851,6 +858,7 @@ static void penetrate(Display *dpy, Window window, Colormap cmap)
                if (laser[i].alive)
                  goto END_CHECK;
         /* okay, nothing's alive, start end of level countdown */
+         screenhack_handle_events(dpy);
         sleep(kLevelPause);
         NewLevel(dpy, window, cmap, xlim, ylim);
         return;
@@ -866,7 +874,8 @@ static void penetrate(Display *dpy, Window window, Colormap cmap)
                lastLaser = loop;
   }
 
-  XSync(dpy, True);
+  XSync(dpy, False);
+  screenhack_handle_events(dpy);
   if (kSleepTime)
         usleep(kSleepTime);