Autoplacement hint



Hi All,

I'd like to add a hint to the EWMH specification to disable autoplacement.

Currently Wine treats popup windows as unmanaged, so can place them exactly on the desktop. This leads to some problems:
* when changing desktops, the unmanaged windows don't disappear as they
  should
* if a dialog is popped up over an (unmanaged) spash screen, it may be
  placed under the spash screen in the Z order

For these reasons, I'd like to make more windows in Wine managed, however this leads to other problems...

Wine relies on being able to place windows in exact positions on the desktop relative to other windows. Some window managers change the position of windows to make sure they are well distributed around the screen, however this often leads to strange results.

For example, Word 2000's clippy will appear, with the animation (one window) and the text underneath it (a seperate window) in seperate areas of the screen. (not that I want to use clippy... ;)

I think these problems can be solved by the addition of a hint to let window managers know that certain windows should not be autoplaced.

At the same time, I've a way to define which type of autoplacement the window manager should use for a window. (_NET_WM_PLACE_APP_CENTER and _NET_WM_PLACE_SCREEN_CENTER) These hints are not necessary for Wine, but may be useful for other applications...

Please let me know if this makes sense, or if there is another way to achieve what I'm trying to do.

thanks,

Mike


Index: wm-spec.xml
===================================================================
RCS file: /cvs/icccm-extensions/wm-spec/wm-spec.xml,v
retrieving revision 1.7
diff -u -r1.7 wm-spec.xml
--- wm-spec.xml 16 Dec 2003 13:56:02 -0000      1.7
+++ wm-spec.xml 22 Dec 2003 01:22:16 -0000
@@ -1355,6 +1355,30 @@
 event.
         </para>
     </sect2>
+       <sect2><title>_NET_WM_PLACEMENT</title>
+       <programlisting><![CDATA[
+_NET_WM_PLACEMENT, ATOM[]
+]]></programlisting>
+        <para>
+This property contains the placement policy the client wants for this window. +Clients wishing to override the window manager's default placement policy SHOULD
+set this property before mapping the window.
+        </para>
+       <programlisting><![CDATA[
+_NET_WM_USE_PHINTS /* window manager SHOULD use the program specified + size and position hints in the ICCCM WM_SIZE_HINTS */ +_NET_WM_PLACE_APP_CENTER /* window manager SHOULD autoplace this window in
+                               the centre of it's parent window */
+_NET_WM_PLACE_SCREEN_CENTER /* window manager SHOULD autoplace this window in
+                               the centre of the screen */
+]]></programlisting>
+        </para>
+        <para>
+Rationale: This property allows an application to indicate to the window manager +how to place the window when it is first mapped. Some applications depend on
+the window manager not autoplacing a window.
+        </para>
+    </sect2>
 </sect1>
 <sect1>
        <title>Window Manager Protocols</title>





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