[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

x11proto-scrnsaver: Changes to 'debian-unstable'



 .gitignore        |   78 ++++
 ChangeLog         |  113 ++++++
 Makefile.am       |   13 
 README            |   30 +
 configure.ac      |   21 -
 debian/changelog  |    8 
 specs/.gitignore  |    6 
 specs/Makefile.am |   64 +++
 specs/saver.xml   |  935 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 9 files changed, 1247 insertions(+), 21 deletions(-)

New commits:
commit 96b49eeae1f98958f41a5da32dba2a98df856813
Author: Robert Hooker <sarvatt@ubuntu.com>
Date:   Tue Nov 2 19:54:46 2010 -0400

    Update changelogs.

diff --git a/ChangeLog b/ChangeLog
index 0b68df4..d77c417 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,116 @@
+commit b4899c5d6090efdf292f5686cc23ed90e3729e4b
+Author: Alan Coopersmith <alan.coopersmith@oracle.com>
+Date:   Fri Oct 29 23:27:16 2010 -0700
+
+    ScrnSaverProto 1.2.1
+    
+    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+
+commit 2db9df02a69046bc2ee3d87432c91d996a733ecc
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date:   Tue Aug 3 15:32:12 2010 -0400
+
+    config: Require xorg-macros minimum of 1.10 for XORG_CHECK_SGML_DOCTOOLS
+    
+    Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
+
+commit a8462405a2d2536867cc63587a49e5d130ea44ea
+Author: Matt Dew <matt@osource.org>
+Date:   Sat Jul 31 12:23:10 2010 -0400
+
+    specs: replace troff source with docbook-xml source
+    
+    Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
+
+commit 689268bf3fcd25015d07be8652fde6924a59b7d9
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date:   Sun Mar 28 19:25:52 2010 -0400
+
+    config: update AC_PREREQ statement to 2.60
+    
+    Unrelated to the previous patches, the new value simply reflects
+    the reality that the minimum level for autoconf to configure
+    all x.org modules is 2.60 dated June 2006.
+    
+    ftp://ftp.gnu.org/gnu/autoconf/autoconf-2.60.tar.gz
+    
+    Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
+
+commit 5056835765a4a2103fbc6977740874762f5d5737
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date:   Sun Mar 28 19:00:31 2010 -0400
+
+    config: remove the pkgconfig pc.in file from EXTRA_DIST
+    
+    Automake always includes it in the tarball.
+    
+    Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
+
+commit d7616943beb59d29349c16670340f677e340852c
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date:   Sun Nov 22 19:24:48 2009 -0500
+
+    Makefile.am: add ChangeLog and INSTALL on MAINTAINERCLEANFILES
+    
+    Now that the INSTALL file is generated.
+    Allows running make maintainer-clean.
+
+commit b758d8d966ccfdda4bdcbe24f679945dbfc2fff9
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date:   Mon Nov 16 11:13:30 2009 -0500
+
+    README: file created or updated #24206
+    
+    Contains a set of URLs to freedesktop.org.
+
+commit 72b6b958cb793feca0fad07276a9cc29c9d818f5
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date:   Sun Nov 15 19:45:27 2009 -0500
+
+    Makefile.am: ChangeLog not required: EXTRA_DIST or *CLEANFILES #24432
+    
+    ChangeLog filename is known to Automake and requires no further
+    coding in the makefile.
+
+commit 5d3c1539a272ce6bd5a11f16f8bc7ab9bce8f1e5
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date:   Sun Nov 15 18:31:29 2009 -0500
+
+    Makefile.am: INSTALL file is missing or incorrect #24206
+    
+    The standard GNU file on building/installing  tarball is copied
+    using the XORG_INSTALL macro contained in XORG_DEFAULT_OPTIONS
+    Add INSTALL target
+
+commit fd7a1f1a3ed7d7907f94b38e6a9a8c4a3b3d9bbb
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date:   Sun Nov 15 18:11:36 2009 -0500
+
+    configure.ac: deploy the new XORG_DEFAULT_OPTIONS #24242
+    
+    This macro aggregate a number of existing macros that sets commmon
+    X.Org components configuration options. It shields the configuration file from
+    future changes.
+
+commit 180c9ee3be0bac7952351c89b0d219e672c1010c
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date:   Sun Nov 15 13:55:25 2009 -0500
+
+    configure.ac: AM_MAINTAINER_MODE missing #24238
+    
+    This turns off maintainer mode build rules in tarballs.
+    Works in conjunction with autogen.sh --enable-maintainer-mode
+
+commit 48110b9fd22f9cefc0cbe4902eabde995f398dd3
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date:   Sat Nov 14 18:26:47 2009 -0500
+
+    .gitignore: use common defaults with custom section # 24239
+    
+    Using common defaults will reduce errors and maintenance.
+    Only the very small or inexistent custom section need periodic maintenance
+    when the structure of the component changes. Do not edit defaults.
+
 commit bcc25e87ba8e93c306b3cd00317a6f550c73f5cf
 Author: Peter Hutterer <peter.hutterer@who-t.net>
 Date:   Tue Aug 25 18:34:56 2009 +1000
diff --git a/debian/changelog b/debian/changelog
index 4886a3c..f6cb6a7 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,10 +1,14 @@
-x11proto-scrnsaver (1.2.0-3) UNRELEASED; urgency=low
+x11proto-scrnsaver (1.2.1-1) UNRELEASED; urgency=low
 
+  [ Julien Cristau ]
   * Rename the build directory to not include DEB_BUILD_GNU_TYPE for no
     good reason.  Thanks, Colin Watson!
   * Remove myself from Uploaders
 
- -- Julien Cristau <jcristau@debian.org>  Sat, 16 Jan 2010 16:47:48 +0000
+  [ Robert Hooker ]
+  * New upstream release.
+
+ -- Robert Hooker <sarvatt@ubuntu.com>  Tue, 02 Nov 2010 19:54:18 -0400
 
 x11proto-scrnsaver (1.2.0-2) unstable; urgency=low
 

commit b4899c5d6090efdf292f5686cc23ed90e3729e4b
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Fri Oct 29 23:27:16 2010 -0700

    ScrnSaverProto 1.2.1
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>

diff --git a/configure.ac b/configure.ac
index c48decb..9938216 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,5 +1,6 @@
 AC_PREREQ([2.60])
-AC_INIT([ScrnSaverProto], [1.2.0], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg])
+AC_INIT([ScrnSaverProto], [1.2.1],
+        [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg])
 AM_INIT_AUTOMAKE([foreign dist-bzip2])
 AM_MAINTAINER_MODE
 

commit 2db9df02a69046bc2ee3d87432c91d996a733ecc
Author: Gaetan Nadon <memsize@videotron.ca>
Date:   Tue Aug 3 15:32:12 2010 -0400

    config: Require xorg-macros minimum of 1.10 for XORG_CHECK_SGML_DOCTOOLS
    
    Signed-off-by: Gaetan Nadon <memsize@videotron.ca>

diff --git a/configure.ac b/configure.ac
index f9f0b1a..c48decb 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3,10 +3,10 @@ AC_INIT([ScrnSaverProto], [1.2.0], [https://bugs.freedesktop.org/enter_bug.cgi?p
 AM_INIT_AUTOMAKE([foreign dist-bzip2])
 AM_MAINTAINER_MODE
 
-# Require xorg-macros: XORG_DEFAULT_OPTIONS
+# Require xorg-macros minimum of 1.10 for HAVE_STYLESHEETS in XORG_CHECK_SGML_DOCTOOLS
 m4_ifndef([XORG_MACROS_VERSION],
-          [m4_fatal([must install xorg-macros 1.3 or later before running autoconf/autogen])])
-XORG_MACROS_VERSION(1.3)
+	  [m4_fatal([must install xorg-macros 1.10 or later before running autoconf/autogen])])
+XORG_MACROS_VERSION(1.10)
 XORG_DEFAULT_OPTIONS
 XORG_ENABLE_SPECS
 XORG_WITH_XMLTO(0.0.20)

commit a8462405a2d2536867cc63587a49e5d130ea44ea
Author: Matt Dew <matt@osource.org>
Date:   Sat Jul 31 12:23:10 2010 -0400

    specs: replace troff source with docbook-xml source
    
    Signed-off-by: Gaetan Nadon <memsize@videotron.ca>

diff --git a/Makefile.am b/Makefile.am
index 0a26e33..8f51dd8 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,3 +1,5 @@
+SUBDIRS=specs
+
 scrnsaverdir = $(includedir)/X11/extensions
 scrnsaver_HEADERS = \
 	saver.h \
diff --git a/configure.ac b/configure.ac
index 13ed780..f9f0b1a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -8,6 +8,11 @@ m4_ifndef([XORG_MACROS_VERSION],
           [m4_fatal([must install xorg-macros 1.3 or later before running autoconf/autogen])])
 XORG_MACROS_VERSION(1.3)
 XORG_DEFAULT_OPTIONS
+XORG_ENABLE_SPECS
+XORG_WITH_XMLTO(0.0.20)
+XORG_WITH_FOP
+XORG_CHECK_SGML_DOCTOOLS(1.5)
 
 AC_OUTPUT([Makefile
+           specs/Makefile
            scrnsaverproto.pc])
diff --git a/specs/.gitignore b/specs/.gitignore
new file mode 100644
index 0000000..12fe512
--- /dev/null
+++ b/specs/.gitignore
@@ -0,0 +1,6 @@
+#		Add & Override for this directory and it's subdirectories
+*.html
+*.ps
+*.pdf
+*.txt
+*.css
diff --git a/specs/Makefile.am b/specs/Makefile.am
new file mode 100644
index 0000000..a312ac9
--- /dev/null
+++ b/specs/Makefile.am
@@ -0,0 +1,64 @@
+#
+# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the "Software"),
+# to deal in the Software without restriction, including without limitation
+# the rights to use, copy, modify, merge, publish, distribute, sublicense,
+# and/or sell copies of the Software, and to permit persons to whom the
+# Software is furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice (including the next
+# paragraph) shall be included in all copies or substantial portions of the
+# Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+# DEALINGS IN THE SOFTWARE.
+#
+
+if ENABLE_SPECS
+doc_sources = saver.xml
+dist_doc_DATA = $(doc_sources)
+
+if HAVE_XMLTO
+doc_DATA = $(doc_sources:.xml=.html)
+
+if HAVE_FOP
+doc_DATA += $(doc_sources:.xml=.ps) $(doc_sources:.xml=.pdf)
+endif
+
+if HAVE_XMLTO_TEXT
+doc_DATA += $(doc_sources:.xml=.txt)
+endif
+
+if HAVE_STYLESHEETS
+XMLTO_FLAGS = -m $(XSL_STYLESHEET)
+
+doc_DATA += xorg.css
+xorg.css: $(STYLESHEET_SRCDIR)/xorg.css
+	$(AM_V_GEN)cp -pf $(STYLESHEET_SRCDIR)/xorg.css $@
+endif
+
+CLEANFILES = $(doc_DATA)
+
+SUFFIXES = .xml .ps .pdf .txt .html
+
+.xml.txt:
+	$(AM_V_GEN)$(XMLTO) $(XMLTO_FLAGS) txt $<
+
+.xml.html:
+	$(AM_V_GEN)$(XMLTO) $(XMLTO_FLAGS) xhtml-nochunks $<
+
+.xml.pdf:
+	$(AM_V_GEN)$(XMLTO) $(XMLTO_FLAGS) --with-fop pdf $<
+
+.xml.ps:
+	$(AM_V_GEN)$(XMLTO) $(XMLTO_FLAGS) --with-fop ps $<
+
+endif HAVE_XMLTO
+endif ENABLE_SPECS
diff --git a/specs/saver.xml b/specs/saver.xml
new file mode 100644
index 0000000..93b5229
--- /dev/null
+++ b/specs/saver.xml
@@ -0,0 +1,935 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+                   "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd";>
+
+<book id="saver">
+
+<bookinfo>
+   <title>X11 Screen Saver Extension</title>
+   <subtitle>MIT X Consortium Proposed Standard</subtitle>
+   <releaseinfo>Version 1.0</releaseinfo>
+   <authorgroup>
+   <othercredit>
+      <firstname>Jim</firstname><surname>Fulton</surname>
+      <affiliation><orgname>Network Computing Devices, Inc</orgname></affiliation>
+   </othercredit>
+   <othercredit>
+      <firstname>Keith</firstname><surname>Packard</surname>
+      <affiliation><orgname>
+X Consortium, Laboratory for Computer Science, Massachusetts Institute of Technology
+      </orgname></affiliation>
+   </othercredit>
+   </authorgroup>
+
+   <copyright><year>1992</year><holder>Massachusetts Institute of Technology and Network Computing Devices, Inc</holder></copyright>
+
+   <productnumber>X Version 11, Release 5</productnumber>
+
+<legalnotice>
+<para>
+Permission to use, copy, modify, and distribute this documentation for any
+purpose and without fee is hereby granted, provided that the above copyright
+notice and this permission notice appear in all copies.  MIT and
+Network Computing Devices, Inc. make no
+representations about the suitability for any purpose of the information in
+this document.  This documentation is provided "as is" without express or
+implied warranty.
+</para>
+
+</legalnotice>
+</bookinfo>
+
+<chapter id="title">
+<title>TITLE</title>
+<sect1 id="Introduction_">
+<title>Introduction</title>
+<para>
+The X Window System provides support for changing the image on a display screen
+after a user-settable period of inactivity to avoid burning the cathode ray
+tube phosphors.  However, no interfaces are provided for the user to control
+the image that is drawn.  This extension allows an external "screen saver"
+client to detect when the alternate image is to be displayed and to provide the
+graphics.
+</para>
+<para>
+Current X server implementations typically provide at least one form of
+"screen saver" image.  Historically, this has been a copy of the X logo
+drawn against the root background pattern.  However, many users have asked
+for the mechanism to allow them to write screen saver programs that provide
+capabilities similar to those provided by other window systems.  In
+particular, such users often wish to be able to display corporate logos,
+instructions on how to reactivate the screen, and automatic screen-locking
+utilities.  This extension provides a means for writing such clients.
+</para>
+</sect1>
+
+<sect1 id="Assumptions">
+<title>Assumptions</title>
+<para>
+This extension exports the notion of a special screen saver window that is
+mapped above all other windows on a display.  This window has the
+<emphasis remap='I'>override-redirect</emphasis> attribute set so that it is not subject to manipulation by
+the window manager.  Furthermore, the X identifier for the window is never
+returned by <function>QueryTree</function> requests on the root window, so it is typically
+not visible to other clients.
+</para>
+</sect1>
+
+<sect1 id="Overview">
+<title>Overview</title>
+<para>
+The core
+<function>SetScreenSaver</function>
+request can be used to set the length of time without
+activity on any input devices after which the screen saver should "activate"
+and alter the image on the screen.  This image periodically "cycles" to
+reduce
+the length of time that any particular pixel is illuminated.  Finally, the
+screen saver is "deactivated" in response to activity on any of the input
+devices
+or particular X requests.
+</para>
+
+<para>
+Screen saving is typically done by disabling video output to the display tube
+or by drawing a changing pattern onto the display.  If the server chooses the
+latter approach, a window with a special identifier is created and mapped at
+the top of the stacking order where it remains until the screen saver
+deactivates.  At this time, the window is unmapped and is not accessible to any
+client requests.
+</para>
+<para>
+The server's default mechanism is refered to as the <emphasis remap='I'>internal</emphasis> screen
+saver.  An <emphasis remap='I'>external</emphasis>
+screen saver client requires a means of determining the window
+id for the screen saver window and setting the attributes (e.g. size,
+location, visual, colormap) to be used when the window is mapped.  These
+requirements form the basis of this extension.
+</para>
+</sect1>
+
+<sect1 id="Issues">
+<title>Issues</title>
+<para>
+This extension raises several interesting issues.  First is the question of
+what should be done if some other client has the server grabbed when the screen
+saver is supposed to activate?  This commonly occurs with window managers that
+automatically ask the user to position a window when it is first mapped by
+grabbing the server and drawing XORed lines on the root window.
+</para>
+<para>
+Second, a screen saver program must control the actual RGB values sent to the
+display tube to ensure that the values change periodically to avoid phosphor
+burn in.  Thus, the client must have a known colormap installed whenever the
+screen saver window is displayed.  To prevent screen flashing, the visual type
+of the screen saver window should also be controlable.
+</para>
+<para>
+Third, some implementations may wish to destroy the screen saver window when
+it is not mapped so that it need not be avoided during event delivery.  Thus,
+screen saver clients may find that the requests that reference the screen
+saver window may fail when the window is not displayed.
+</para>
+</sect1>
+
+<sect1 id="Protocol">
+<title>Protocol</title>
+<para>
+The Screen Saver extension is as follows:
+</para>
+
+<sect2 id="Types">
+<title>Types</title>
+<para>
+In adition to the comon types described in the core protocol, the following
+type is used in the request and event definitions in subsequent sections.
+</para>
+
+<informaltable frame="none">
+  <tgroup cols='2' align='left'>
+  <colspec colname='c1' colsep="0"/>
+  <colspec colname='c2' colsep="0"/>
+  <thead>
+    <row>
+      <entry>Name</entry>
+      <entry>Value</entry>
+    </row>
+  </thead>
+  <tbody>
+    <row rowsep="0">
+      <entry>SCREENSAVEREVENT</entry>
+      <entry><emphasis role="bold">ScreenSaverNotify</emphasis>,
+      <emphasis role="bold">ScreenSaverCycle</emphasis></entry>
+    </row>
+  </tbody>
+  </tgroup>
+</informaltable>
+</sect2>
+
+<sect2 id="Errors">
+<title>Errors</title>
+<para>
+The Screen Saver extension adds no errors beyond the core protocol.
+</para>
+</sect2>
+
+<sect2 id="Requests">
+<title>Requests</title>
+<para>
+The Screen Saver extension adds the following requests:
+</para>
+
+<literallayout>
+<emphasis role="bold">ScreenSaverQueryVersion</emphasis>
+     client-major-version: CARD8
+     client-minor-version: CARD8
+->
+     server-major-version: CARD8
+     server-minor-version: CARD8
+</literallayout>
+
+<para>
+This request allows the client and server to determine which version of
+the protocol should be used.  The client sends the version that it
+prefers; if the server understands that
+version, it returns the same values and interprets subsequent requests
+for this extension according to the specified version.  Otherwise,
+the server returns the closest version of the protocol that it can
+support and interprets subsequent requests according to that version.
+This document describes major version 1, minor version 0; the major
+and minor revision numbers should only be incremented in response to
+incompatible and compatible changes, respectively.
+</para>
+
+<literallayout>
+<emphasis role="bold">ScreenSaverQueryInfo</emphasis>
+<emphasis>drawable</emphasis> DRAWABLE
+
+saver-window: WINDOW
+state: {<emphasis role="bold">Disabled</emphasis>, <emphasis role="bold">Off</emphasis>, <emphasis role="bold">On</emphasis>}
+kind: {<emphasis role="bold">Blanked</emphasis>, <emphasis role="bold">Internal</emphasis>, <emphasis role="bold">External</emphasis>}
+til-or-since: CARD32
+idle: CARD32
+event-mask: SETofSCREENSAVEREVENT
+
+Errors: <emphasis role="bold">Drawable</emphasis>
+</literallayout>
+
+<para>
+This request returns information about the state of the screen
+saver on the screen associated with <emphasis remap='I'>drawable</emphasis>.  The <emphasis remap='I'>saver-window</emphasis>
+is the XID that is associated with the screen saver window.  This
+window is not guaranteed to exist
+except when external screen saver is active.  Although it is a
+child of the root, this window is not returned by
+<function>QueryTree</function>
+requests on the root.  Whenever this window is mapped, it is always above
+any of its siblings in the stacking order.  XXX - TranslateCoords?
+</para>
+<para>
+The <emphasis remap='I'>state</emphasis> field specifies whether or not the screen saver is currently
+active and how the <emphasis remap='I'>til-or-since</emphasis> value should be interpretted:
+</para>
+
+<informaltable frame="none">
+  <tgroup cols='2' align='left'>
+  <colspec colname='c1' colsep="0"/>
+  <colspec colname='c2' colsep="0"/>
+  <tbody>
+    <row rowsep="0">
+      <entry><emphasis role="bold">Off</emphasis></entry>
+      <entry>
+The screen is not currently being saved;
+<emphasis remap='I'>til-or-since</emphasis>
+specifies the number of milliseconds until the screen saver is expected to
+activate.
+      </entry>
+    </row>
+    <row rowsep="0">
+      <entry><emphasis role="bold">On</emphasis></entry>
+      <entry>
+The screen is currently being saved;
+<emphasis remap='I'>til-or-since</emphasis> specifies
+the number of milliseconds since the screen saver activated.
+      </entry>
+    </row>
+    <row rowsep="0">
+      <entry><emphasis role="bold">Disabled</emphasis></entry>
+      <entry>
+The screen saver is currently disabled;
+<emphasis remap='I'>til-or-since</emphasis> is zero.
+      </entry>
+    </row>
+  </tbody>
+  </tgroup>
+</informaltable>
+
+<para>
+The <emphasis remap='I'>kind</emphasis> field specifies the mechanism that either is currently being
+used or would have been were the screen being saved:
+</para>
+
+<informaltable frame="none">
+  <tgroup cols='2' align='left'>
+  <colspec colname='c1' colsep="0"/>
+  <colspec colname='c2' colsep="0"/>
+  <tbody>
+    <row rowsep="0">
+      <entry><emphasis role="bold">Blanked</emphasis></entry>
+      <entry>The video signal to the display monitor was disabled.</entry>
+    </row>
+    <row rowsep="0">
+      <entry><emphasis role="bold">Internal</emphasis></entry>
+      <entry>A server-dependent, built-in screen saver image was displayed; either no
+      client had set the screen saver window attributes or a different client
+      had the server grabbed when the screen saver activated.</entry>
+    </row>
+    <row rowsep="0">
+      <entry><emphasis role="bold">External</emphasis></entry>
+      <entry>The screen saver window was mapped with attributes set by a
+      client using the <function>ScreenSaverSetAttributes</function> request.</entry>
+    </row>
+  </tbody>
+  </tgroup>
+</informaltable>
+
+<para>
+The <emphasis remap='I'>idle</emphasis> field specifies the number of milliseconds since the last
+input was received from the user on any of the input devices.
+</para>
+
+<para>
+The <emphasis remap='I'>event-mask</emphasis> field specifies which, if any, screen saver
+events this client has requested using <function>ScreenSaverSelectInput</function>.
+</para>
+
+<para>
+If <emphasis remap='I'>drawable</emphasis> is not a valid drawable identifier, a Drawable
+error is returned and the request is ignored.
+</para>
+
+<literallayout>
+<emphasis role="bold">ScreenSaverSelectInput</emphasis>
+drawable: DRAWABLE
+event-mask: SETofSCREENSAVEREVENT
+</literallayout>
+
+<para>
+Errors:
+<emphasis role="bold">Drawable</emphasis>,
+<emphasis role="bold">Match</emphasis>
+</para>
+
+<para>
+This request specifies which Screen Saver extension events on the screen
+associated with <emphasis remap='I'>drawable</emphasis> should be generated for this client.  If
+no bits are set in <emphasis remap='I'>event-mask</emphasis>, then no events will be generated.
+Otherwise, any combination of the following bits may be set:
+</para>
+
+<informaltable frame="none">
+  <tgroup cols='2' align='center'>
+  <colspec colname='c1' colsep="0"/>
+  <colspec colname='c2' colsep="0"/>
+  <tbody>
+    <row rowsep="0">
+      <entry><emphasis role="bold">ScreenSaverNotify</emphasis></entry>
+      <entry>
+If this bit is set, <emphasis role="bold">ScreenSaverNotify</emphasis> events are generated whenever
+the screen saver is activated or deactivated.
+      </entry>
+    </row>
+    <row rowsep="0">
+      <entry><emphasis role="bold">ScreenSaverCycle</emphasis></entry>
+      <entry>
+If this bit is set, <emphasis role="bold">ScreenSaverNotify</emphasis> events are generated whenever
+the screen saver cycle interval passes.
+      </entry>
+    </row>
+  </tbody>
+  </tgroup>
+</informaltable>
+
+<para>
+If <emphasis remap='I'>drawable</emphasis> is not a valid drawable identifier, a Drawable
+error is returned.  If any undefined bits are set in <emphasis remap='I'>event-mask</emphasis>,
+a Value error is returned.  If an error is returned,
+the request is ignored.
+</para>
+
+<para>
+<emphasis role="bold">ScreenSaverSetAttributes</emphasis>
+</para>
+<literallayout>
+drawable: DRAWABLE
+class:
+{<emphasis role="bold">InputOutput</emphasis>, <emphasis role="bold">InputOnly</emphasis>, <emphasis role="bold">CopyFromParent</emphasis>}
+depth: CARD8
+visual: VISUALID or <emphasis role="bold">CopyFromParent</emphasis>
+x, y: INT16
+width, height, border-width: CARD16
+value-mask: BITMASK
+value-list: LISTofVALUE
+
+<emphasis role="bold">Access</emphasis>, <emphasis role="bold">Window</emphasis>, <emphasis role="bold">Pixmap</emphasis>, <emphasis role="bold">Colormap</emphasis>, <emphasis role="bold">Cursor</emphasis>, <emphasis role="bold">Match</emphasis>, <emphasis role="bold">Value</emphasis>, <emphasis role="bold">Alloc</emphasis>
+</literallayout>
+
+<para>
+This request sets the attributes that this client would like to see
+used in creating the screen saver window on the screen associated
+with <emphasis remap='I'>drawable</emphasis>.  If another client currently has the attributes set,
+an Access error is generated and the request is ignored.
+</para>
+
+<para>
+Otherwise, the specified window attributes are checked as if
+they were used in a core <function>CreateWindow</function> request whose
+parent is the root.  The <emphasis remap='I'>override-redirect</emphasis> field is ignored as
+it is implicitly set to True.  If the window attributes result in an
+error according to the rules for <function>CreateWindow</function>, the request is ignored.
+</para>
+<para>
+Otherwise, the attributes are stored and will take effect on the next
+activation that occurs when the server is not grabbed by another client.
+Any resources specified for the
+<emphasis remap='I'>background-pixmap</emphasis> or <emphasis remap='I'>cursor</emphasis> attributes may be
+freed immediately.  The server is free to copy the <emphasis remap='I'>background-pixmap</emphasis>
+or <emphasis remap='I'>cursor</emphasis> resources or to use them in place; therefore, the effect of
+changing the contents of those resources is undefined.  If the
+specified <emphasis remap='I'>colormap</emphasis> no longer exists when the screen saver activates,
+the parent's colormap is used instead.  If no errors are generated by this
+request, any previous
+screen saver window attributes set by this client are released.
+</para>
+<para>
+When the screen saver next activates and the server is not grabbed by
+another client, the screen saver window is
+created, if necessary, and set to the specified attributes and events
+are generated as usual.  The colormap
+associated with the screen saver window is
+installed.  Finally, the screen saver window is mapped.
+</para>
+<para>
+The window remains mapped and at the top of the stacking order
+until the screen saver is deactivated in response to activity on
+any of the user input devices, a <function>ForceScreenSaver</function> request with
+a value of Reset, or any request that would cause the window to be
+unmapped.
+</para>
+<para>
+If the screen saver activates while the server is grabbed by another
+client, the internal saver mechanism is used.  The <function>ForceScreenSaver</function>
+request may be used with a value of Active to
+deactivate the internal saver and activate the external saver.
+</para>
+<para>
+If the screen saver client's connection to the server is broken
+while the screen saver is activated and the client's close down mode has not
+been RetainPermanent or RetainTemporary, the current screen saver
+is deactivated and the internal screen saver is immediately activated.
+</para>
+<para>
+When the screen saver deactivates, the screen saver window's colormap
+is uninstalled and the window is unmapped (except as described below).
+The screen saver XID is disassociated
+with the window and the server may, but is not required to,
+destroy the window along with any children.
+</para>
+<para>
+When the screen saver is being deactivated and then immediately
+reactivated (such as when switching screen savers), the server
+may leave the screen saver window mapped (typically to avoid
+generating exposures).
+</para>
+
+<para>
+<emphasis role="bold">ScreenSaverUnsetAttributes</emphasis>
+</para>
+
+<literallayout>
+<emphasis>drawble</emphasis>: <emphasis role="bold">DRAWABLE</emphasis>
+
+Errors: <emphasis role="bold">Drawable</emphasis>
+</literallayout>
+
+<para>
+This request notifies the server that this client no longer
+wishes to control the screen saver window.  Any screen saver
+attributes set by this client and any descendents of the screen
+saver window created by this client should be released
+immediately if the screen saver is not active, else upon
+deactivation.
+</para>
+<para>
+This request is ignored if the client has not previously set the screen saver
+window attributes.
+</para>
+</sect2>
+
+<sect2 id="Events_">
+<title>Events</title>
+<para>
+The Screen Saver extension adds one event:
+</para>
+<para>
+<emphasis role="bold">ScreenSaverNotify</emphasis>
+</para>
+
+<literallayout>
+<emphasis role="bold">root</emphasis>: WINDOW
+<emphasis role="bold">window</emphasis>: WINDOW
+<emphasis role="bold">state</emphasis>: {<emphasis role="bold">Off</emphasis>, <emphasis role="bold">On</emphasis>, <emphasis role="bold">Cycle</emphasis>}
+<emphasis role="bold">kind</emphasis>: { <emphasis role="bold">Blanked</emphasis>, <emphasis role="bold">Internal</emphasis> , <emphasis role="bold">External</emphasis> }
+<emphasis role="bold">forced</emphasis>: BOOL
+<emphasis role="bold">time</emphasis>: TIMESTAMP
+</literallayout>
+<para>
+This event is delivered to clients that have requested
+ScreenSaverNotify events using the <function>ScreenSaverSelectInput</function> request
+whenever the screen saver activates or deactivates.
+</para>
+<para>
+The <emphasis remap='I'>root</emphasis> field specifies root window of the screen for
+which the event was generated.  The <emphasis remap='I'>window</emphasis> field specifies
+the value that is returned by <function>ScreenSaverQueryInfo</function> as
+the identifier for the screen saver window.  This window is not
+required to exist if the external screen saver is not active.
+</para>
+<para>
+The <emphasis remap='I'>state</emphasis> field specifies the cause of the event:
+</para>
+
+<informaltable frame="none">
+  <tgroup cols='2' align='left'>
+  <colspec colname='c1' colsep="0"/>
+  <colspec colname='c2' colsep="0"/>
+  <tbody>
+    <row rowsep="0">
+      <entry><emphasis role="bold">Off</emphasis></entry>
+      <entry>
+The screen saver deactivated; this event is sent if the client has set the
+ScreenSaverNotify bit in its event mask.
+      </entry>
+    </row>
+    <row rowsep="0">
+      <entry><emphasis role="bold">On</emphasis></entry>
+      <entry>
+The screen saver activated.  This event is sent if the client has set the
+ScreenSaverNotify bit in its event mask.
+      </entry>
+    </row>
+    <row rowsep="0">
+      <entry><emphasis role="bold">Cycle</emphasis></entry>
+      <entry>
+The cycle interval passed and the client is expected to change the image on
+the screen.  This event is sent if the client has set the
+ScreenSaverCycle bit in its event mask.
+      </entry>
+    </row>
+  </tbody>
+  </tgroup>
+</informaltable>
+
+<para>
+If <emphasis remap='I'>state</emphasis> is set to
+<emphasis role="bold">On </emphasis> or
+<emphasis role="bold">Off</emphasis>
+then <emphasis remap='I'>forced</emphasis> indicates whether or not
+activation or deactivation was caused by a core
+<function>ForceScreenSaver</function>
+request; otherwise, <emphasis remap='I'>forced</emphasis> is set to False.
+</para>
+
+<para>
+The <emphasis remap='I'>kind</emphasis> field specifies mechanism that was used to save the screen
+when the screen saver was activated, as described in
+<function>ScreenSaverQueryInfo</function>.
+</para>
+
+<para>
+The <emphasis remap='I'>time</emphasis> field indicates the server time
+when the event was generated.
+</para>
+</sect2>
+</sect1>
+
+<sect1 id="Encoding">
+<title>Encoding</title>
+<para>
+Please refer to the X11 Protocol Encoding document as this document uses
+conventions established there.
+</para>
+<para>
+The name of this extension is "SCREEN-SAVER".
+</para>
+
+<sect2 id="Common_Types">
+<title>Common Types</title>
+<literallayout class="monospaced">
+SETofSCREENSAVEREVENT
+     #x00000001     ScreenSaverNotifyMask
+     #x00000002     ScreenSaverCycleMask
+</literallayout>
+</sect2>
+
+<sect2 id="Requests_2">
+<title>Requests</title>
+<literallayout class="monospaced">
+<emphasis role="bold">ScreenSaverQueryVersion</emphasis>
+1     CARD8                   screen saver opcode
+1     0                       minor opcode
+2     2                       request length
+1     CARD8                   client major version
+1     CARD8                   client minor version
+2                             unused
+->
+1     1                       Reply
+1                             unused
+2     CARD16                  sequence number
+4     0                       reply length
+1     CARD8                   server major version
+1     CARD8                   server minor version
+22                            unused
+
+<emphasis role="bold">ScreenSaverQueryInfo</emphasis>
+1     CARD8                   screen saver opcode
+1     1                       minor opcode
+2     2                       request length
+4     DRAWABLE                drawable associated with screen
+->
+1     1                       Reply
+1     CARD8                   state
+      0          Off
+      1          On
+      3          Disabled
+2     CARD16                  sequence number
+4     0                       reply length
+4     WINDOW                  saver window
+4     CARD32                  milliseconds until saver or since saver
+4     CARD32                  milliseconds since last user device input
+4     SETofSCREENSAVEREVENT   event mask
+1     CARD8                   kind
+      0          Blanked
+      1          Internal
+      2          External
+10               unused
+
+<emphasis role="bold">ScreenSaverSelectInput</emphasis>
+1     CARD8                   screen saver opcode
+1     2                       minor opcode
+2     3                       request length
+4     DRAWABLE                drawable associated with screen
+4     SETofSCREENSAVEREVENT   event mask
+
+<emphasis role="bold">ScreenSaverSetAttributes</emphasis>
+1     CARD8                   screen saver opcode
+1     3                       minor opcode
+2     6+n                     request length
+4     DRAWABLE                drawable associated with screen
+2     INT16                   x
+2     INT16                   y
+2     CARD16                  width
+2     CARD16                  height
+2     CARD16                  border-width
+1                             class
+      0          CopyFromParent
+      1          InputOutput
+      2          InputOnly
+1     CARD8                   depth
+4     VISUALID                visual
+      0          CopyFromParent
+4     BITMASK                 value-mask (has n bits set to 1)
+      encodings are the same as for core CreateWindow
+4n    LISTofVALUE             value-list
+      encodings are the same as for core CreateWindow
+
+<emphasis role="bold">ScreenSaverUnsetAttributes</emphasis>
+1     CARD8                   screen saver opcode
+1     4                       minor opcode
+2     3                       request length
+4     DRAWABLE                drawable associated with screen
+</literallayout>
+</sect2>
+
+<sect2 id="Events">
+<title>Events</title>
+
+<literallayout class="monospaced">
+<emphasis role="bold">ScreenSaverNotify</emphasis>
+1     CARD8                   code assigned by core
+1     CARD8                   state
+      0          Off
+      1          On
+      2          Cycle
+2     CARD16                  sequence number
+4     TIMESTAMP               time
+4     WINDOW                  root
+4     WINDOW                  screen saver window
+1     CARD8                   kind
+      0          Blanked


Reply to: