New spec version / Revised Window Movement Implementation Notes



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

Doh - once more without the attachment !!

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 :)

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: DzHMYg8Xe+6rAGO12WgqzYGvsmYQQPo9

iQA/AwUAOaQDJpJAqFTwwbGuEQJvhwCfSBV2xXxkZL2Bhx2P6juuy8PywaIAoJkS
ZQDVTqadekcDMJmtzj9TgyML
=ODS2
-----END PGP SIGNATURE-----





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