http://ftp.x.org/contrib/applications/xscreensaver-3.23.tar.gz
[xscreensaver] / hacks / maze.c
index d795e78e8bb83b61bd35383f26b48a57c7e300e2..40edf41b58bf9e8dfdc310585680c9b963d037a2 100644 (file)
@@ -201,6 +201,9 @@ check_events (void)                        /* X event handler [ rhess ] */
     case Expose:
       restart = 1;
       break;
+    default:
+      screenhack_handle_event(dpy, &e);
+      break;
     }
     return(1);
   }
@@ -1367,13 +1370,13 @@ find_dead_regions(void)
          }
        }
       }
-    XSync(dpy, 0);
+    XSync(dpy, False);
 }
 
 static void
 solve_maze (void)                     /* solve it with graphical feedback */
 {
-    int i, dir, from, x, y, ways, bt;
+    int i, dir, from, x, y, ways, bt = 0;
 
     /* plug up the surrounding wall */
     maze[end_x][end_y] |= (WALL_TOP >> end_dir);
@@ -1612,7 +1615,13 @@ screenhack(Display *display, Window window)
   set_maze_sizes (xgwa.width, xgwa.height);
 
   if (! root)
-    XSelectInput (dpy, win, ExposureMask|ButtonPressMask|StructureNotifyMask);
+    {
+      XWindowAttributes xgwa;
+      XGetWindowAttributes (dpy, window, &xgwa);
+      XSelectInput (dpy, win,
+                    xgwa.your_event_mask | ExposureMask |
+                    ButtonPressMask |StructureNotifyMask);
+    }
   
   gc  = XCreateGC(dpy, win, 0, 0);
   cgc = XCreateGC(dpy, win, 0, 0);