Re: RFC: frame size hints



On Mon, 2003-12-08 at 14:14, Havoc Pennington wrote:
> On Mon, 2003-12-08 at 09:14, Lubos Lunak wrote:
> >  Oh well. I guess I can live with it after all. But I'd prefer if the wording 
> > more stressed the fact that the result will be just an estimate (because it's 
> > an evil hack).
> 
> If you can think of a non-hack solution I'm all for it. I do think this
> solution can at least in principle be implemented correctly, which is
> something. It's not _inherently_ only an estimate.
> 

OK, here's a patch against the spec.  I guess it's debatable whether the
_NET_REQUEST_FRAME_EXTENTS wording should be "estimate the frame
extents" or "calculate the frame extents".  I've left it as "estimate"
for now.

Can we leave this up for, say, one week, then check it in if there are
no objections?

Thanks for all the comments,
Tom

Index: wm-spec.xml
===================================================================
RCS file: /cvs/icccm-extensions/wm-spec/wm-spec.xml,v
retrieving revision 1.6
diff -u -r1.6 wm-spec.xml
--- wm-spec.xml	29 Jul 2003 18:08:38 -0000	1.6
+++ wm-spec.xml	9 Dec 2003 23:38:34 -0000
@@ -744,7 +744,34 @@
 	terminate the operation, e.g. by pressing the ESC key.  
         </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 that wishes to know the extents of its window's frame SHOULD
+send this message to the root window.  The Window Manager SHOULD
+respond by setting the window's _NET_FRAME_EXTENTS property.
+	</para>
+	<para>
+If the Window Manager receives a _NET_REQUEST_FRAME_EXTENTS message
+before the window is mapped, it SHOULD estimate the frame extents that
+the window would be given upon mapping, then set _NET_FRAME_EXTENTS
+accordingly.
+	</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 is a workable
+solution.  Extents estimates 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>
@@ -1298,6 +1325,16 @@
 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 SHOULD 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>





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