From 4aed2c8219774f5d797760606b8489a92ddc5163 Mon Sep 17 00:00:00 2001 From: toma Date: Wed, 25 Nov 2009 17:56:58 +0000 Subject: Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdebase@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- kwin/wm-spec/x208.html | 225 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 225 insertions(+) create mode 100644 kwin/wm-spec/x208.html (limited to 'kwin/wm-spec/x208.html') diff --git a/kwin/wm-spec/x208.html b/kwin/wm-spec/x208.html new file mode 100644 index 000000000..1097bd923 --- /dev/null +++ b/kwin/wm-spec/x208.html @@ -0,0 +1,225 @@ +Other Root Window Messages
PrevNext

4. Other Root Window Messages

4.1. _NET_CLOSE_WINDOW

_NET_CLOSE_WINDOW

Pagers wanting to close a window MUST send a _NET_CLOSE_WINDOW client + message request to the root window: +

_NET_CLOSE_WINDOW
+  window = window to close
+  message_type = _NET_CLOSE_WINDOW
+  format = 32
+  data.l[0] = 0 /* may be used later */

The Window Manager MUST then attempt to close the window specified. +

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. +

4.2. _NET_WM_MOVERESIZE

_NET_WM_MOVERESIZE
+  window = window to be moved or resized
+  message_type = _NET_WM_MOVERESIZE
+  format = 32
+  data.l[0] = x_root 
+  data.l[1] = y_root
+  data.l[2] = direction
+  data.l[3] = button

This message allows an application to initiate window movement or + resizing. This allows the application to define its 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 WM. +

When sending this message in response to a button press event, button + SHOULD indicate the button which was pressed, x_root and y_root MUST + indicate the position of the button press with respect to the root + window and direction MUST indicate whether this is a move or resize + event, and if it is a resize event, which edges of the window the size + grip applies to. When sending this message in response to a key event, + the direction MUST indicate wether this this is a move or resize event + and the other fields are unused. +

#define _NET_WM_MOVERESIZE_SIZE_TOPLEFT      0
+#define _NET_WM_MOVERESIZE_SIZE_TOP          1
+#define _NET_WM_MOVERESIZE_SIZE_TOPRIGHT     2
+#define _NET_WM_MOVERESIZE_SIZE_RIGHT        3
+#define _NET_WM_MOVERESIZE_SIZE_BOTTOMRIGHT  4
+#define _NET_WM_MOVERESIZE_SIZE_BOTTOM       5
+#define _NET_WM_MOVERESIZE_SIZE_BOTTOMLEFT   6
+#define _NET_WM_MOVERESIZE_SIZE_LEFT         7
+#define _NET_WM_MOVERESIZE_MOVE              8   /* movement only */
+#define _NET_WM_MOVERESIZE_SIZE_KEYBOARD     9   /* size via keyboard */
+#define _NET_WM_MOVERESIZE_MOVE_KEYBOARD    10   /* move via keyboard */

The Client MUST release all grabs prior to sending such message. +

The Window Manager can use the button field to determine the + events on which it terminates the operation initiated by the + _NET_WM_MOVERESIZE message. Since there is a race condition between + client sending the _NET_WM_MOVERESIZE message and the user releasing + the button, Window Managers are advised to offer some other means to + terminate the operation, e.g. by pressing the ESC key. +


PrevHomeNext
Root Window Properties (+Related Messages) Application Window Properties
\ No newline at end of file -- cgit v1.2.1