summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--wm-spec/wm-spec.xml46
1 files changed, 45 insertions, 1 deletions
diff --git a/wm-spec/wm-spec.xml b/wm-spec/wm-spec.xml
index cfcc8b3..3b31964 100644
--- a/wm-spec/wm-spec.xml
+++ b/wm-spec/wm-spec.xml
@@ -790,7 +790,36 @@ _NET_CLOSE_WINDOW
tool, and therefore the Window Manager should always obey it.
</para>
</sect2>
- </sect1>
+ <sect2><title>_NET_REQUEST_FRAME_EXTENTS</title>
+ <programlisting><![CDATA[
+_NET_REQUEST_FRAME_EXTENTS
+ window = window for which to set _NET_FRAME_EXTENTS
+ message_type = _NET_REQUEST_FRAME_EXTENTS
+]]></programlisting>
+ <para>
+A Client whose window has not yet been mapped can request of the
+Window Manager an estimate of the frame extents it will be given upon
+mapping. To retrieve such an estimate, the Client MUST send a
+_NET_REQUEST_FRAME_EXTENTS message to the root window. The Window
+Manager MUST respond by estimating the prospective frame extents and
+setting the window's _NET_FRAME_EXTENTS property accordingly. The
+Client MUST handle the resulting _NET_FRAME_EXTENTS PropertyNotify
+event. So that the Window Manager has a good basis for estimation,
+the Client MUST set any window properties it intends to set
+<i>before</i> sending this message. The Client MUST be able to cope
+with imperfect estimates.
+ </para>
+ <para>
+Rationale: A client cannot calculate the dimensions of its window's
+frame before the window is mapped, but some toolkits need this
+information. Asking the window manager for an estimate of the extents
+is a workable solution. The estimate may depend on the current theme,
+font sizes or other window properties. The client can track changes
+to the frame's dimensions by listening for _NET_FRAME_EXTENTS
+PropertyNotify events.
+ </para>
+ </sect2>
+</sect1>
<sect1>
<title>Application Window Properties</title>
<sect2><title>_NET_WM_NAME</title>
@@ -1355,6 +1384,16 @@ action or is a "pop-up" window activated by a timer or some other
event.
</para>
</sect2>
+ <sect2><title>_NET_FRAME_EXTENTS</title>
+ <programlisting><![CDATA[
+_NET_FRAME_EXTENTS, left, right, top, bottom, CARDINAL[4]/32
+]]></programlisting>
+ <para>
+The Window Manager MUST set _NET_FRAME_EXTENTS to the extents of the
+window's frame. left, right, top and bottom are widths of the
+respective borders added by the Window Manager.
+ </para>
+ </sect2>
</sect1>
<sect1>
<title>Window Manager Protocols</title>
@@ -1865,6 +1904,7 @@ OR OTHER DEALINGS IN THE SOFTWARE.
<para>David Rosenthal</para>
<para>Lubos Lunak</para>
<para>Rob Adams</para>
+ <para>Thomas Fitzsimmons</para>
</sect1>
<sect1>
<title>Change history</title>
@@ -1872,6 +1912,10 @@ OR OTHER DEALINGS IN THE SOFTWARE.
<title>Changes since 1.2</title>
<itemizedlist>
<listitem><para>
+Added _NET_REQUEST_FRAME_EXTENTS and _NET_FRAME_EXTENTS to allow a
+client to retrieve its window's frame extents.
+ </para></listitem>
+ <listitem><para>
Added new state _NET_WM_STATE_DEMANDS_ATTENTION.
</para></listitem>
<listitem><para>