Re: _NET_WM_USER_TIME reconsidered


The whole _NET_WM_USER_TIME thing is a continuing problem for accessibility, as it now stands. In an assistive technology setting, there isn't always an X event that corresponds to the "user action" which results in a new window being posted or focus changing. Since X doesn't allow us to get a meaningful answer to "what's the current timestamp", we have serious problems when trying to interact with windows via non-X-device-based user requests.

We really need a solution for this!

Best regards,


Matthias Clasen wrote:

Since there seem to be no further comments on this,
here is a patch to add _NET_WM_USER_TIME_WINDOW to the EWMH.

I have probably lost my fd.o commit powers since I last did
an EWMH edit, so I can just put the patch here and ask for
somebody else to commit it.



--- wm-spec.xml.orig	2006-09-26 00:45:58.000000000 -0400
+++ wm-spec.xml	2006-09-26 00:53:13.000000000 -0400
@@ -1,7 +1,7 @@
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
""; [
-<!ENTITY version "Draft version 1.4.draft-1">
-<!ENTITY date "May 13, 2005">
+<!ENTITY version "Draft version 1.4.draft-2">
+<!ENTITY date "September 26, 2006">
<article id="index">
@@ -1470,7 +1470,8 @@
window took place.
-Clients should set this property on every new toplevel window, before mapping
+Clients should set this property on every new toplevel window (or on the window +pointed out by the _NET_WM_USER_TIME_WINDOW property), before mapping
the window, to the timestamp of the user interaction that caused the window to
appear.  A client that only deals with core events, might, for example, use the
timestamp of the last KeyPress or ButtonPress event. ButtonRelease and
@@ -1498,8 +1499,29 @@
+	<sect2><title>_NET_WM_USER_TIME_WINDOW</title>
+ <programlisting><![CDATA[ +_NET_WM_USER_TIME_WINDOW WINDOW/32
+        <para>
+This property contains the XID of a window on which the client sets
+the _NET_WM_USER_TIME property. Clients should check whether the +window manager supports _NET_WM_USER_TIME_WINDOW and fall back to +setting the _NET_WM_USER_TIME property on the toplevel window if it +doesn't. + </para>
+        <para>
+Rationale: Storing the frequently changing _NET_WM_USER_TIME property
+on the toplevel window itself causes every application that is +interested in any of the properties of that window to be woken up +on every keypress, which is particularly bad for laptops running on +battery power.
+        </para>
+	</sect2>
-	<programlisting><![CDATA[
+ <programlisting><![CDATA[ _NET_FRAME_EXTENTS, left, right, top, bottom, CARDINAL[4]/32
@@ -2136,6 +2158,9 @@
Added note WM_TRANSIENT_FOR for override-redirect windows
+			<listitem><para>
+			</para></listitem>

wm-spec-list mailing list
wm-spec-list gnome org

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