ftp://ftp.krokus.ru/pub/OpenBSD/distfiles/xscreensaver-4.21.tar.gz
[xscreensaver] / hacks / screenhack.c
index 79a58cde9792e2d0c5fdcf29403742d11c69e1cc..96d87b71131f63aad53ef89d26cd7c1c8f76c4c5 100644 (file)
@@ -1,5 +1,4 @@
-/* xscreensaver, Copyright (c) 1992, 1995, 1997, 1998, 2001, 2002, 2003
- *  Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver, Copyright (c) 1992-2005 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -187,6 +186,9 @@ static Atom XA_WM_PROTOCOLS, XA_WM_DELETE_WINDOW;
 void
 screenhack_handle_event (Display *dpy, XEvent *event)
 {
+  if (XtAppPending (app) & (XtIMTimer|XtIMAlternateInput))
+    XtAppProcessEvent (app, XtIMTimer|XtIMAlternateInput);
+
   switch (event->xany.type)
     {
     case KeyPress:
@@ -389,6 +391,8 @@ main (int argc, char **argv)
 
   fix_fds();
 
+  progname = argv[0];   /* reset later */
+
 #ifdef XLOCKMORE
   pre_merge_options ();
 #endif
@@ -534,9 +538,9 @@ main (int argc, char **argv)
       screen = xgwa.screen;
       visual_warning (screen, window, visual, cmap, True);
 
-      /* Select KeyPress events on the external window.
+      /* Select KeyPress and resize events on the external window.
        */
-      xgwa.your_event_mask |= KeyPressMask;
+      xgwa.your_event_mask |= KeyPressMask | StructureNotifyMask;
       XSelectInput (dpy, window, xgwa.your_event_mask);
 
       /* Select ButtonPress and ButtonRelease events on the external window,