http://packetstormsecurity.org/UNIX/admin/xscreensaver-4.16.tar.gz
[xscreensaver] / driver / xset.c
index 2e167c1468dd6e463aa6c1ebb22d5fe0ade146c6..d26ee1b25a08938164e8d2dbfa3429ed42b40616 100644 (file)
@@ -1,5 +1,5 @@
 /* xset.c --- interacting with server extensions and the builtin screensaver.
- * xscreensaver, Copyright (c) 1991-1998 Jamie Zawinski <jwz@jwz.org>
+ * xscreensaver, Copyright (c) 1991-2004 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
@@ -156,6 +156,39 @@ query_xidle_extension (saver_info *si)
 #endif /* HAVE_XIDLE_EXTENSION */
 
 
+\f
+/* Resize and Rotate server extension hackery.
+ */
+
+#ifdef HAVE_RANDR
+
+# include <X11/extensions/Xrandr.h>
+
+Bool
+query_randr_extension (saver_info *si)
+{
+  saver_preferences *p = &si->prefs;
+  Bool ok = XRRQueryExtension (si->dpy,
+                               &si->randr_event_number,
+                               &si->randr_error_number);
+  if (ok)
+    {
+      int nscreens = ScreenCount (si->dpy);  /* number of *real* screens */
+      int i;
+
+      if (p->verbose_p)
+       fprintf (stderr, "%s: selecting RANDR events\n", blurb());
+      for (i = 0; i < nscreens; i++)
+        XRRSelectInput (si->dpy, RootWindow (si->dpy, i),
+                        RRScreenChangeNotifyMask);
+    }
+
+  return ok;
+}
+
+#endif /* HAVE_XIDLE_EXTENSION */
+
+
 \f
 /* Figuring out what the appropriate XSetScreenSaver() parameters are
    (one wouldn't expect this to be rocket science.)
@@ -223,14 +256,11 @@ disable_builtin_screensaver (saver_info *si, Bool unblank_screen_p)
       desired_prefer_blank != current_prefer_blank ||
       desired_allow_exp != current_allow_exp)
     {
-      if (unblank_screen_p)
-       fprintf (stderr,
-                "%s disabling server builtin screensaver.\n"
-                "%s: you can re-enable it with \"xset s on\".\n",
-                blurb(), blurb());
-
       if (p->verbose_p)
-       fprintf (stderr, "%s: (xset s %d %d; xset s %s; xset s %s)\n", blurb(),
+       fprintf (stderr,
+                 "%s: disabling server builtin screensaver:\n"
+                 "%s:  (xset s %d %d; xset s %s; xset s %s)\n",
+                 blurb(), blurb(),
                 desired_server_timeout, desired_server_interval,
                 (desired_prefer_blank ? "blank" : "noblank"),
                 (desired_allow_exp ? "expose" : "noexpose"));