From http://www.jwz.org/xscreensaver/xscreensaver-5.23.tar.gz
[xscreensaver] / hacks / hexadrop.c
index dd8bfeeac8e7fca5e4aa01b59389ca8a0851d794..dc1015a701adf0a4f0f54d68fc4d177c82957b11 100644 (file)
@@ -359,8 +359,21 @@ static Bool
 hexadrop_event (Display *dpy, Window window, void *closure, XEvent *event)
 {
   state *st = (state *) closure;
+  Bool bonkp = False;
 
-  if (event->type == ButtonPress || event->type == KeyPress)
+
+  if (event->type == ButtonPress)
+    bonkp = True;
+  else if (event->type == KeyPress)
+    {
+      KeySym keysym;
+      char c = 0;
+      XLookupString (&event->xkey, &c, 1, &keysym, 0);
+      if (c == ' ' || c == '\t' || c == '\r' || c == '\n')
+        bonkp = True;
+    }
+
+  if (bonkp)
     {
       cell *c = st->cells;
       st->cells = 0;