From e34d84a17341bb82af38fb84c6c070bb58b6d5b5 Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Wed, 9 Nov 2011 16:00:36 -0500 Subject: Add _NET_WM_STATE_FOCUSED MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Patch from Rui Tiago Cação Matos to add a a new _NET_WM_STATE atom that accurately tracks when the window manager shows the window decorations as active or inactive. This allows for better handling of cases where modal dialogs might be shown as a unit with a parent window, or where grabs cause a disjunction between X input focus and the focus displayed to the user. --- wm-spec/wm-spec.xml | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/wm-spec/wm-spec.xml b/wm-spec/wm-spec.xml index 98f9f9b..014b40b 100644 --- a/wm-spec/wm-spec.xml +++ b/wm-spec/wm-spec.xml @@ -1,7 +1,7 @@ - + + ]>
@@ -1117,6 +1117,7 @@ _NET_WM_STATE_FULLSCREEN, ATOM _NET_WM_STATE_ABOVE, ATOM _NET_WM_STATE_BELOW, ATOM _NET_WM_STATE_DEMANDS_ATTENTION, ATOM +_NET_WM_STATE_FOCUSED, ATOM ]]> An implementation MAY add new atoms to this list. Implementations @@ -1206,6 +1207,20 @@ the Window Manager. It should be unset by the Window Manager when it decides the window got the required attention (usually, that it got activated). + +_NET_WM_STATE_FOCUSED indicates whether the window's decorations are drawn in an +active state. Clients MUST regard it as a read-only hint. It cannot be set at +map time or changed via a _NET_WM_STATE client message. The window given by +_NET_ACTIVE_WINDOW will usually have this hint, but at times other windows may +as well, if they have a strong association with the active window and will be +considered as a unit with it by the user. Clients that modify the appearance of +internal elements when a toplevel has keyboard focus SHOULD check for the +availability of this state in _NET_SUPPORTED and, if it is available, +use it in preference to tracking focus via FocusIn events. By doing so they will +match the window decorations and accurately reflect the intentions of the Window +Manager. + + To change the state of a mapped window, a Client MUST send a _NET_WM_STATE client message to the root window: @@ -2240,6 +2255,14 @@ OR OTHER DEALINGS IN THE SOFTWARE. Change history + + Changes since 1.4draft + + +Added _NET_WM_STATE_FOCUSED. + + + Changes since 1.3 -- cgit v1.2.3-70-g09d2