From ac1b78a2776d6a383942efe8d6bbc5fcf8d41327 Mon Sep 17 00:00:00 2001 From: llunak Date: Wed, 13 Apr 2005 09:14:58 +0000 Subject: Patch by Olivier Chapuis to add source indication to more messages. --- wm-spec/wm-spec.xml | 43 ++++++++++++++++++++++++++++++++++--------- 1 file changed, 34 insertions(+), 9 deletions(-) (limited to 'wm-spec') diff --git a/wm-spec/wm-spec.xml b/wm-spec/wm-spec.xml index 8aa1cff..bb9b5b0 100644 --- a/wm-spec/wm-spec.xml +++ b/wm-spec/wm-spec.xml @@ -665,10 +665,12 @@ _NET_CLOSE_WINDOW message_type = _NET_CLOSE_WINDOW format = 32 data.l[0] = timestamp + data.l[1] = source indication other data.l[] elements = 0 ]]> The Window Manager MUST then attempt to close the window specified. +See for details on the source indication. Rationale: A Window Manager might be more clever than the usual method (send WM_DELETE message if the protocol is selected, XKillClient otherwise). It might introduce a timeout, for example. Instead of duplicating the code, the Window Manager can easily do the job. @@ -693,7 +695,10 @@ _NET_MOVERESIZE_WINDOW (6), SouthWest (7), South (8), SouthEast (9) and Static (10). A gravity of 0 indicates that the Window Manager should use the gravity specified in WM_SIZE_HINTS.win_gravity. The bits 8 to 11 indicate the - presence of x, y, width and height. + presence of x, y, width and height. The bits 12 to 15 indicate the + source (see ), so 0001 indicates + the application and 0010 indicates a Pager or a Taskbar. + The remaining bits should be set to zero. Pagers wanting to move or resize a window may send a @@ -722,14 +727,15 @@ _NET_WM_MOVERESIZE data.l[1] = y_root data.l[2] = direction data.l[3] = button - other data.l[] elements = 0 + data.l[4] = source indication ]]> This message allows Clients to initiate window movement or resizing. They can define their own move and size "grips", whilst letting the Window Manager control the actual operation. This means that all moves/resizes can happen in a consistent manner as - defined by the Window Manager. + defined by the Window Manager. See + for details on the source indication. When sending this message in response to a button press event, button @@ -786,7 +792,7 @@ _NET_RESTACK_WINDOW ]]> This request is similar to ConfigureRequest with CWSibling and CWStackMode flags. It should be used only by pagers, - applications can use normal ConfigureRequests. The source indication field should be therefore set to 1, + applications can use normal ConfigureRequests. The source indication field should be therefore set to 2, see for details. @@ -906,9 +912,12 @@ _NET_WM_DESKTOP message_type = _NET_WM_DESKTOP format = 32 data.l[0] = new_desktop + data.l[1] = source indication other data.l[] elements = 0 ]]> + See for details on the source + indication. The Window Manager MUST keep this property updated on all windows. _NET_WM_WINDOW_TYPE @@ -1116,13 +1125,24 @@ the window got the required attention (usually, that it got activated). To change the state of a mapped window, a Client MUST send a _NET_WM_STATE -client message to the root window (window is the respective window, type -_NET_WM_STATE, format 32, l[0]=<the action, as listed below>, -l[1]=<First property to alter>, l[2]=<Second property to alter>). +client message to the root window: + + + This message allows two properties to be changed simultaneously, specifically to allow both horizontal and vertical maximization to be altered together. -l[2] MUST be set to zero if only one property is to be changed. l[0], the -action, MUST be one of: +l[2] MUST be set to zero if only one property is to be changed. +See for details on the source indication. +l[0], the action, MUST be one of: Lubos Lunak Rob Adams Thomas Fitzsimmons + Olivier Chapuis Søren Sandmann @@ -1977,6 +1998,10 @@ OR OTHER DEALINGS IN THE SOFTWARE. Changes since 1.2 + +Added source indication to _NET_CLOSE_WINDOW, _NET_WM_MOVERESIZE, +_NET_MOVERESIZE_WINDOW, _NET_WM_DESKTOP and _NET_WM_STATE message. + Added _NET_WM_SYNC_REQUEST to allow synchronized repaint of application window and window manager frame during opaque resize. -- cgit v1.2.3-54-g00ecf