From http://www.jwz.org/xscreensaver/xscreensaver-5.35.tar.gz
[xscreensaver] / hacks / xlyap.c
index f12b354775e4ac75ad2dc8f45ca68d8672eef57b..cbd493794c194c607ba172dcaa13cfef1f684b1d 100644 (file)
@@ -43,7 +43,7 @@
 #undef countof
 #define countof(x) (sizeof((x))/sizeof((*x)))
 
-#ifndef HAVE_COCOA
+#ifndef HAVE_JWXYZ
 # include <X11/cursorfont.h> 
 #endif
 
@@ -78,7 +78,7 @@ static const char *xlyap_defaults [] = {
   "*delay:              10000",
   "*linger:             5",
   "*colors:             200",
-#ifdef USE_IPHONE
+#ifdef HAVE_MOBILE
   "*ignoreRotation:     True",
 #endif
   0
@@ -161,7 +161,7 @@ typedef struct {
 #endif
 
 typedef struct {
-# ifndef HAVE_COCOA
+# ifndef HAVE_JWXYZ
   Cursor band_cursor;
 # endif
   double p_min, p_max, q_min, q_max;
@@ -827,7 +827,7 @@ Getkey(struct state *st, XKeyEvent *event)
   unsigned char key;
   int i;
   if (XLookupString(event, (char *)&key, sizeof(key), (KeySym *)0,
-                    (XComposeStatus *) 0) > 0)
+                    (XComposeStatus *) 0) > 0) {
 
     if (st->reset_countdown)
       st->reset_countdown = st->linger;
@@ -956,6 +956,7 @@ Getkey(struct state *st, XKeyEvent *event)
     case 'H': print_help(st); return True;
     default:  return False;
     }
+  }
 
   return False;
 }
@@ -1877,11 +1878,13 @@ static Bool
 xlyap_event (Display *dpy, Window window, void *closure, XEvent *event)
 {
   struct state *st = (struct state *) closure;
+
   switch(event->type)
     {
     case KeyPress:
-      return Getkey(st, &event->xkey);
-      return True;
+      if (Getkey(st, &event->xkey))
+        return True;
+      break;
 #if 0
     case ButtonPress:
       StartRubberBand(st, &st->rubber_data, event);
@@ -1896,6 +1899,13 @@ xlyap_event (Display *dpy, Window window, void *closure, XEvent *event)
     default: 
       break;
     }
+
+  if (screenhack_event_helper (dpy, window, event))
+    {
+      Clear(st);
+      return True;
+    }
+
   return False;
 }