X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?p=xscreensaver;a=blobdiff_plain;f=driver%2Fxscreensaver.c;h=5327ccb0cf23470ed07b66f42ca18f2909109a91;hp=09665b665de43e7c4cff488992de83749510e1a2;hb=e4fa2ac140f7bc56571373a7b7eb585fa4500e38;hpb=96a411663168b0ba5432b407a83be55f3df0c802 diff --git a/driver/xscreensaver.c b/driver/xscreensaver.c index 09665b66..5327ccb0 100644 --- a/driver/xscreensaver.c +++ b/driver/xscreensaver.c @@ -255,7 +255,7 @@ do_help (saver_info *si) fflush (stdout); fflush (stderr); fprintf (stdout, "\ -xscreensaver %s, copyright (c) 1991-2003 by Jamie Zawinski \n\ +xscreensaver %s, copyright (c) 1991-2004 by Jamie Zawinski \n\ \n\ All xscreensaver configuration is via the `~/.xscreensaver' file.\n\ Rather than editing that file by hand, just run `xscreensaver-demo':\n\ @@ -719,7 +719,7 @@ print_banner (saver_info *si) if (p->verbose_p) fprintf (stderr, - "%s %s, copyright (c) 1991-2003 " + "%s %s, copyright (c) 1991-2004 " "by Jamie Zawinski .\n", progname, si->version); @@ -1372,27 +1372,33 @@ main_loop (saver_info *si) To avoid this: after un-blanking the screen, sleep for a second, and then really make sure the window is unmapped. + + Update: actually, let's do that once a second for 8 seconds, + because sometimes the machine is slow, and we miss... */ { - int i; - XSync (si->dpy, False); - sleep (1); - for (i = 0; i < si->nscreens; i++) + int i, j; + for (j = 0; j < 8; j++) { - saver_screen_info *ssi = &si->screens[i]; - Window w = ssi->screensaver_window; - XWindowAttributes xgwa; - XGetWindowAttributes (si->dpy, w, &xgwa); - if (xgwa.map_state != IsUnmapped) + XSync (si->dpy, False); + sleep (1); + for (i = 0; i < si->nscreens; i++) { - if (p->verbose_p) - fprintf (stderr, - "%s: %d: client race! emergency unmap 0x%lx.\n", - blurb(), i, (unsigned long) w); - XUnmapWindow (si->dpy, w); + saver_screen_info *ssi = &si->screens[i]; + Window w = ssi->screensaver_window; + XWindowAttributes xgwa; + XGetWindowAttributes (si->dpy, w, &xgwa); + if (xgwa.map_state != IsUnmapped) + { + if (p->verbose_p) + fprintf (stderr, + "%s: %d: client race! emergency unmap 0x%lx.\n", + blurb(), i, (unsigned long) w); + XUnmapWindow (si->dpy, w); + } } + XSync (si->dpy, False); } - XSync (si->dpy, False); } } }