-/* xscreensaver, Copyright (c) 1991-1997 Jamie Zawinski <jwz@netscape.com>
+/* xscreensaver, Copyright (c) 1991-1998 Jamie Zawinski <jwz@netscape.com>
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
* window exposed.
* - If you run your debugger under XEmacs, try M-ESC (x-grab-keyboard)
* to keep your emacs window alive even when xscreensaver has grabbed.
- * - Go read the code related to -DDEBUG.
+ * - Go read the code related to `debug_p'.
* - You probably can't set breakpoints in functions that are called on
* the other side of a call to fork() -- if your clients are dying
* with signal 5, Trace/BPT Trap, you're losing in this way.
do_help (saver_info *si)
{
printf ("\
-xscreensaver %s, copyright (c) 1991-1997 by Jamie Zawinski <jwz@netscape.com>\n\
+xscreensaver %s, copyright (c) 1991-1998 by Jamie Zawinski <jwz@netscape.com>\n\
The standard Xt command-line options are accepted; other options include:\n\
\n\
-timeout <minutes> When the screensaver should activate.\n\
get_screenhacks (si);
-#ifdef DEBUG
if (p->debug_p)
{
XSynchronize(si->dpy, True);
p->verbose_p = True;
p->initial_delay = 0;
}
-#endif /* DEBUG */
}
if (argc == 2 && !strcmp (argv[1], "-help"))
do_help (si);
-#ifdef DEBUG
+
else if (argc == 2 && !strcmp (argv[1], "-debug"))
si->prefs.debug_p = True; /* no resource for this one, out of paranoia. */
-#endif /* DEBUG */
+
else if (argc > 1)
{
fprintf (stderr, "%s: unknown option %s\n", progname, argv [1]);
if (p->verbose_p)
printf ("\
-%s %s, copyright (c) 1991-1997 by Jamie Zawinski <jwz@netscape.com>\n\
+%s %s, copyright (c) 1991-1998 by Jamie Zawinski <jwz@netscape.com>\n\
pid = %d.\n", progname, si->version, (int) getpid ());
if (si->demo_mode_p)
demo_mode (si);
else
-#endif
+#endif /* !NO_DEMO_MODE */
{
if (p->verbose_p)
printf ("%s: user is idle; waking up at %s.\n", progname,
si->lock_id = XtAppAddTimeOut (si->app, p->lock_timeout,
activate_lock_timer,
(XtPointer) si);
-#endif
+#endif /* !NO_LOCKING */
PASSWD_INVALID:
just after the server is grabbed, closing this window
entirely.
*/
- /* ungrab_keyboard_and_mouse (); */
+ /* ungrab_keyboard_and_mouse (si); */
{
saver_screen_info *ssi = si->default_screen;
/* I think this grab is now redundant, but it shouldn't hurt.
*/
if (!si->demo_mode_p)
- grab_keyboard_and_mouse (si->dpy, ssi->screensaver_window,
+ grab_keyboard_and_mouse (si, ssi->screensaver_window,
ssi->cursor);
}
goto PASSWD_INVALID;
si->locked_p = False;
}
-#endif
- unblank_screen (si);
+#endif /* !NO_LOCKING */
+
+ /* Let's kill it before unblanking, to get it to stop drawing as
+ soon as possible... */
kill_screenhack (si);
+ unblank_screen (si);
+
if (si->cycle_id)
{
XtRemoveTimeOut (si->cycle_id);
si->cycle_id = 0;
}
+
#ifndef NO_LOCKING
if (si->lock_id)
{
XtRemoveTimeOut (si->lock_id);
si->lock_id = 0;
}
-#endif
+#endif /* !NO_LOCKING */
+
if (p->verbose_p)
printf ("%s: user is active; going to sleep at %s.\n", progname,
timestring ());