_NET_WM_STATE_DEMANDS_ATTENTION and 0 timestamps



Hi all,

I'm looking at bug #797040 on launchpad, basically what is happening
there is that the window is being mapped and setting _NET_WM_USER_TIME
to 0 on map so that it will not be given focus when mapped. However,
in that case, when focus is denied, the EWMH says that we should set
_NET_WM_STATE_DEMANDS_ATTENTION since

"_NET_WM_STATE_DEMANDS_ATTENTION indicates that some action in or with
the window happened. For example, it may be set by the Window Manager
if the window requested activation but the Window Manager refused it,
or the application may set it if it finished some work. This state may
be set by both the Client and 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)."

It certainly makes sense to give the user some kind of notification
(usually in a taskbar or pager) that the window was indeed created but
didn't come to the front of the stack and wasn't given focus. However,
in this case, the window explicitly requests no focus and then gets
the "demands attention" hint set. When the window does get focus, it
could be the case that it isn't ready yet.

In that case, should the window manager remove the demands attention
mask when the window doesn't respond to _NET_WM_PING (race condition
if the application is actually needing to demand attention later) or
should the application be allowed to remove the
_NET_WM_STATE_DEMANDS_ATTENTION atom from _NET_WM_STATE (since the
EWMH is not clear on whether are not individual applications are
allowed to unset this). Or should we create a new property to specify
that the window should be mapped "silently", eg with no focus, and no
"demands attention" hint set, at least until the application is ready.

Cheers,

Sam

-- 
Sam Spilsbury


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