New spec version / Revised Window Movement Implementation Notes



-----BEGIN PGP SIGNED MESSAGE-----

Hi all -

I've tried to update the wm-spec Window Movement section in line with the
recent discusion. As ever *I am not a WM author*, so please check for errors and
inconsistencies. If there are any probs I will try to fix them.

I've asked Havoc to update freedesktop.org too :)

sgml diff follows,

Julian

Index: wm-spec.sgml
===================================================================
RCS file: /home/freedesktop/wm-spec/wm-spec.sgml,v
retrieving revision 1.4
diff -r1.4 wm-spec.sgml
13c13
< This spec is version 1.0pre1.
---
> This spec is version 1.0pre2.
45a46,56
> 		<title>Changes since 1.0pre1</title>
> 		<itemizedlist>
> 			<listitem><para>
> Removed implementation note concerning Gnome's (potential) file manager behaviour.
> 			</para></listitem>
> 			<listitem><para>
> The Window Movement section of the implementation notes has been revised.
> 			</para></listitem>
> 		</itemizedlist>
> 	</sect2>
> 	<sect2>
706,708d716
< 		<para>
< Several GNOME file manager developers have accepted this model
< 		</para>
741,745c749,752
< According to the ICCCM, applications should not see unnecessary differences
< between running with or without a window manager. Therefore window movements
< for already mapped windows, such as ones requested by XMoveWindow(Display,
< Window, X, Y) have to move the window Window to the coordinates (X, Y) and not
< cause the window's window manager frame window to end up at (X, Y).
---
> Window manager implementors should refer to the ICCCM for definitive
> specifications of how to handle MapRequest and ConfigureRequest events.
> However, since these aspects of the ICCCM are easily misread, this
> document offers the following clarifications:
746a754,805
> 	<itemizedlist>
> 		<listitem><para>
> Window managers MUST honour the win_gravity field of WM_NORMAL_HINTS
>    for both MapRequest _and_ ConfigureRequest events [1]
> 		</para></listitem>
> 		<listitem><para>
> Applications are free to change their win_gravity setting at any time
> 		</para>
> 		<para>
> If application changes its gravity then Window manager should adjust the
> reference point, so that client window will not move as the result.
> For example if client's gravity was NorthWestGravity and reference point
> was
> at the top-left corner of the frame window, then after change of gravity to
> the SouthEast reference point should be adjusted to point to the
> lower-right
> corner of the frame.
> 		</para></listitem>
> 		<listitem><para>
> When generating synthetic ConfigureNotify events, the position given
>    MUST be the top-left corner of the client window in relation to the
>    origin of the root window (i.e., ignoring win_gravity) [2]
> 		</para></listitem>
> 		<listitem><para>
> XMoveWindow( w, x, y) behaviour depends on the window gravity:
> 		</para>
> 		<para>
> StaticGravity:
> 		</para>
> 		<para>
>      window's left top corner will be placed at (x,y)
> 		</para>
> 		<para>
> NorthWestGravity:
> 		</para>
> 		<para>
>      window frame's left top corner will be placed at (x,y)
> 		</para>
> 		<para>
> NorthEastGravity:
> 		</para>
> 		<para>
>      window frame's right top corner will be placed at (x,y)
> 		</para>
> 		<para>
>
> SouthWestGravity:
> 		</para>
> 		<para>
>      window frame's left bottom corner will be placed at (x,y)
> 		</para>
> 		<para>
747a807,846
> SouthEastGravity:
> 		</para>
> 		<para>
>      window frame's right bottom corner will be placed at (x,y)
> 		</para>
> 		<para>
>
> CenterGravity:
> 		</para>
> 		<para>
>      window frame's center will be placed at (x,y)
> 		</para>
> 		<para>
>
> (x,y) will become a new "reference point" for the client window.
> 		</para></listitem>
> 		<listitem><para>
> Implementation Note for Application developers:
> 		</para>
> 		<para>
> When client window is resized - its reference point does not move.
> So for example if window has SouthEastGravity and it is resized -
> the bottom-right corner of its frame will not move but instead
> top-left corner will be adjusted by the difference in size.
> 		</para></listitem>
> 		<listitem><para>
> Implementation Note for WM developers :
> 		</para>
> 		<para>
> when calculating reference point at the time of initial placement -
> initial window's width should be taken into consideration, as if it
> was the frame for this window.
> 		</para></listitem>
> 	</itemizedlist>
> 	<para>
> [1] ICCCM Version 2.0, 4.1.2.3 and 4.1.5
> 	</para>
> 	<para>
> [2] ICCCM Version 2.0, 4.2.3
> 	</para>


-----BEGIN PGP SIGNATURE-----
Version: PGPfreeware 5.0i for non-commercial use
MessageID: fE1TqVAr3HfGqLOoOGuXzunyGv/xYGOU

iQA/AwUAOaQCTJJAqFTwwbGuEQK45ACeNY96ekz94KlqcEG3mnqUzE8qaFUAnijl
qBkFBh/NMzyMZ6LXI0k20Gkq
=6pZ0
-----END PGP SIGNATURE-----





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