Re: Standardizing _METACITY_UPDATE_COUNTER



Soeren Sandmann <sandmann daimi au dk> writes:

> Okay, here are metacity, gtk+ and wm-spec patches. The differences to
> what we discussed earlier are

So, any objections to me committing this?  I'll take silence as a 
"go ahead" on friday.


Søren


The patch:

Index: wm-spec.xml
===================================================================
RCS file: /cvs/icccm-extensions/wm-spec/wm-spec.xml,v
retrieving revision 1.9
diff -u -r1.9 wm-spec.xml
--- wm-spec.xml	29 Jan 2004 13:19:58 -0000	1.9
+++ wm-spec.xml	26 Apr 2004 13:38:36 -0000
@@ -1438,6 +1438,57 @@
 		<para>
 See also the implementation notes on <link linkend="KILLINGWINDOWS">killing hung processes</link>.
 		</para>
+		<title>_NET_WM_SYNC_REQUEST</title>
+		<para>
+This protocol uses the XSync extension (see <ulink
+url="http://www.xfree86.org/current/sync.pdf";>the
+specification</ulink> and <ulink
+url="http://www.xfree86.org/current/synclib.pdf";>the library
+documentation</ulink>) to let client and window manager to synchronize
+the repaint of the window manager frame and the client window. A
+client indicates that it is willing to participate in the protocol by
+listing _NET_WM_SYNC_REQUEST in the WM_PROTOCOLS property of the
+client window and storing the XID of an XSync counter in the property
+_NET_WM_SYNC_REQUEST_COUNTER. The initial value of this counter is not
+defined by this specification.
+		</para>
+		<para>
+A window manager uses this protocol by preceding a ConfigureNotify
+event sent to a client by a client message as follows:
+		<para>
+		<programlisting><![[CDATA[
+type = ClientMessage
+window = the respective client window
+message_type = WM_PROTOCOLS
+format = 32
+data.l[0] = _NET_WM_SYNC_REQUEST
+data.l[1] = timestamp
+data.l[2] = low 32 bits of the update request number
+data.l[3] = high 32 bits of the update request number
+other data.l[] elements = 0
+]]></programlisting>
+		</para>
+		<para>
+After receiving one or more such message/ConfigureNotify pairs, and
+having handled all repainting associated with the ConfigureNotify
+events, the client MUST set the _NET_WM_SYNC_REQUEST_COUNTER to the 64
+bit number indicated by the data.l[2] and data.l[3] fields of the last
+client message received.
+		</para>
+		<para>
+By using either the Alarm or the Await mechanisms of the XSync
+extension, the window manager can know when the client has finished
+handling the ConfigureNotify events. The window manager SHOULD not
+resize the window faster than the client can keep up.
+		</para>
+		<para>
+The update request number in the client message is determined by the
+window manager, but is generally intended to be incremented by one for
+each message sent. Since the initial value of the XSync counter is not
+defined by this specification, the window manager MAY set the value of
+the XSync counter at any time, and MUST do so when it first manages a
+new window.
+		</para>
 	</sect2>
 </sect1>
 <sect1>



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