Re: Standardizing _METACITY_UPDATE_COUNTER
- From: Soeren Sandmann <sandmann daimi au dk>
- To: wm-spec-list gnome org
- Cc: gtk-devel-list gnome org, gtg990h mail gatech edu
- Subject: Re: Standardizing _METACITY_UPDATE_COUNTER
- Date: 24 May 2004 13:47:41 +0200
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]