From http://www.jwz.org/xscreensaver/xscreensaver-5.38.tar.gz
[xscreensaver] / driver / windows.c
index 29edc82b66b1349fb3a3f6879a83fbd6f69ea4f6..9b2bf8476f1cffff44808fb189243d8ca77b0ad8 100644 (file)
@@ -74,10 +74,10 @@ typedef long PROP32;
 extern int kill (pid_t, int);          /* signal() is in sys/signal.h... */
 
 Atom XA_VROOT, XA_XSETROOT_ID, XA_ESETROOT_PMAP_ID, XA_XROOTPMAP_ID;
+Atom XA_NET_WM_USER_TIME;
 Atom XA_SCREENSAVER, XA_SCREENSAVER_VERSION, XA_SCREENSAVER_ID;
 Atom XA_SCREENSAVER_STATUS;
 
-
 extern saver_info *global_si_kludge;   /* I hate C so much... */
 
 static void maybe_transfer_grabs (saver_screen_info *ssi,
@@ -897,7 +897,7 @@ saver_exit (saver_info *si, int status, const char *dump_core_reason)
 
       if (bugp)
        fprintf(real_stderr,
-               "%s: see http://www.jwz.org/xscreensaver/bugs.html\n"
+               "%s: see https://www.jwz.org/xscreensaver/bugs.html\n"
                "\t\t\tfor bug reporting information.\n\n",
                blurb());
 
@@ -944,6 +944,9 @@ store_saver_id (saver_screen_info *ssi)
   struct passwd *p = getpwuid (getuid ());
   const char *name, *host;
   char *id;
+# if defined(HAVE_UNAME)
+  struct utsname uts;
+# endif /* UNAME */
 
   /* First store the name and class on the window.
    */
@@ -976,7 +979,6 @@ store_saver_id (saver_screen_info *ssi)
 
 # if defined(HAVE_UNAME)
   {
-    struct utsname uts;
     if (uname (&uts) < 0)
       host = "???";
     else
@@ -1008,7 +1010,7 @@ store_saver_status (saver_info *si)
 
   status = (PROP32 *) calloc (size, sizeof(PROP32));
 
-  status[0] = (PROP32) (si->screen_blanked_p
+  status[0] = (PROP32) (si->screen_blanked_p || si->locked_p
                         ? (si->locked_p ? XA_LOCK : XA_BLANK)
                         : 0);
   status[1] = (PROP32) si->blank_time;
@@ -1681,7 +1683,7 @@ blank_screen (saver_info *si)
   raise_window (si, False, False, False);
 
   si->screen_blanked_p = True;
-  si->blank_time = time ((time_t) 0);
+  si->blank_time = time ((time_t *) 0);
   si->last_wall_clock_time = 0;
 
   store_saver_status (si);  /* store blank time */
@@ -1803,7 +1805,7 @@ unblank_screen (saver_info *si)
     XUnmapWindow (si->dpy, si->screens[i].screensaver_window);
 
   si->screen_blanked_p = False;
-  si->blank_time = time ((time_t) 0);
+  si->blank_time = time ((time_t *) 0);
   si->last_wall_clock_time = 0;
 
   store_saver_status (si);  /* store unblank time */