WINDOW_TYPE_HINT_UTILITY windows are hard to find
fourdan at xfce.org
Thu Apr 5 21:24:06 CEST 2007
Chris Moore wrote:
> On 4/5/07, Olivier Fourdan <fourdan at xfce.org> wrote:
>> As stated in the spec, the application may set the WM_TRANSIENT_FOR hint
>> indicating the main application window. If it does, then the windows will be
>> raised and kept on top of its parent window.
> There can be multiple canvas windows open at a time, and we would want
> the dialog windows to be 'transient for' all of them. ie. whichever
> of the canvases is clicked on, we want the dialog window(s) to be
> brought to the front as well. Is it possible for a dialog window to
> be 'transient for' more than one window at a time?
Yes, it's called "transient for group". It's the standard way of
implementing this, that would work on several window managers (although
not all window managers support it).
The standard says:
/If the WM_TRANSIENT_FOR property is set to None or Root window, the
window should be treated as a transient for all other windows in the
same group. It has been noted that this is a slight ICCCM violation, but
as this behavior is pretty standard for many toolkits and window
managers, and is extremely unlikely to break anything, it seems
reasonable to document it as standard./
>> One improvement could be to ignore the UTILITY type of windows unless the
>> WM_TRANSIENT_FOR is set.
> But then all the dialog windows would appear in the task bar wouldn't
> they? What I'm wanting is for them to not take up space in the task
> bar (for they are pretty much useless without a canvas window also
> being shown), but for them to pop up whenever any of the canvas
> windows is clicked on. This is exactly what metacity is doing, by the
Yes, but the application doesn't implement the standard and it works
with metacity because it implements that behaviour. Try with KDE (kwin),
does it work? Standards are for that purpose...
>> That would definitely help with such applications. Can you open an terminal,
>> run "xprop|grep TRANSIENT" and click on one of the utility windows and check
>> if the WM_TRANSIENT_FOR is set?
> It isn't.
> $ xprop|grep -i -e transient -e window_type
> _NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_UTILITY
Yes, that confirms what I just said above. BTW, why not posting the full
result of the xprop command? Or even better, open a bug/feature request
More information about the Xfce4-dev