fflush (stdout);
fflush (stderr);
fprintf (stdout, "\
-xscreensaver %s, copyright (c) 1991-2003 by Jamie Zawinski <jwz@jwz.org>\n\
+xscreensaver %s, copyright (c) 1991-2004 by Jamie Zawinski <jwz@jwz.org>\n\
\n\
All xscreensaver configuration is via the `~/.xscreensaver' file.\n\
Rather than editing that file by hand, just run `xscreensaver-demo':\n\
if (p->verbose_p)
fprintf (stderr,
- "%s %s, copyright (c) 1991-2003 "
+ "%s %s, copyright (c) 1991-2004 "
"by Jamie Zawinski <jwz@jwz.org>.\n",
progname, si->version);
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);
}
}
}
{
if (until_idle_p)
{
+ if (p->mode == DONT_BLANK)
+ {
+ clientmessage_response(si, window, True,
+ "ACTIVATE ClientMessage received in DONT_BLANK mode.",
+ "screen blanking is currently disabled.");
+ return False;
+ }
+
clientmessage_response(si, window, False,
"ACTIVATE ClientMessage received.",
"activating.");
char buf2 [255];
long which = event->xclient.data.l[1];
+ if (p->mode == DONT_BLANK)
+ {
+ clientmessage_response(si, window, True,
+ "SELECT ClientMessage received in DONT_BLANK mode.",
+ "screen blanking is currently disabled.");
+ return False;
+ }
+
sprintf (buf, "SELECT %ld ClientMessage received.", which);
sprintf (buf2, "activating (%ld).", which);
clientmessage_response (si, window, False, buf, buf2);
"not compiled with support for locking.",
"locking not enabled.");
#else /* !NO_LOCKING */
- if (si->locking_disabled_p)
+ if (p->mode == DONT_BLANK)
+ clientmessage_response(si, window, True,
+ "LOCK ClientMessage received in DONT_BLANK mode.",
+ "screen blanking is currently disabled.");
+ else if (si->locking_disabled_p)
clientmessage_response (si, window, True,
"LOCK ClientMessage received, but locking is disabled.",
"locking not enabled.");