Re: _NET_WM_STATE_BELOW doesn't work when set by an application

Mikael Magnusson <[email protected]>
Newsgroups gmane.comp.window-managers.openbox
Message-ID <CAHYJk3QhO1q5EjZDyVjJ2A49yxtXK86i+GOHwyXsrJ8gECGYDQ@mail.gmail.com>
On 5 February 2014 10:42, Danny <[email protected]> wrote:
> On Tue, Feb 4, 2014 at 5:59 PM, Dana Jansens <[email protected]> wrote:
>> On Tue, Feb 4, 2014 at 6:42 AM, Danny <[email protected]> wrote:
>>>
>>>
>>> Hello,
>>>
>>> I'm using the default openbox (on gdm) on CentOS 6.5 and are working on an
>>> application (based on Qt 5.1.1) which tries to set one of its windows to the
>>> background. The application uses the Qt API to achieve this. This should
>>> result in the windows manager flag _NET_WM_STATE_BELOW to be applied to the
>>> window. It seems that openbox doesn't react on this window manager flag.
>>>
>>> To come up with a simple test case, I tried the same with the Qt example
>>> "windowsflags". This results in the same behavior, the window doesn't seem
>>> to be kept below when the application asks for it.
>>>
>>> Additionally testing shows that this also aplies to Openbox 1.5.2, which
>>> is manually compiled from the sources.
>>>
>>> Furthermore, when using the openbox configure to set the specific window
>>> to the lowest layer, it does seem to work as expected, as long as the
>>> application itself doesn't ask to keep the window in the lowest layer.
>>>
>>> Another weird side effect is that the application is able to keep one
>>> window on top. However this doesn't work anymore if the same application
>>> also asks to keep another window below.
>>>
>>> Could this be a bug in openbox? Are there any suggestions how to proceed
>>> with this issue?
>>
>>
>> To change the state of a mapped window, a Client MUST send a _NET_WM_STATE
>> client message to the root window:
>>
>>   window  = the respective client window
>>   message_type = _NET_WM_STATE
>>   format = 32
>>   data.l[0] = the action, as listed below
>>   data.l[1] = first property to alter
>>   data.l[2] = second property to alter
>>   data.l[3] = source indication
>>
>>   other data.l[] elements = 0
>>
>> via http://standards.freedesktop.org/wm-spec/1.3/ar01s05.html
>>
>>
>>
>> _______________________________________________
>> openbox mailing list
>> [email protected]
>> http://icculus.org/mailman/listinfo/openbox
>>
>
>
> I noticed the Qt library uses xcb_change_property() calls to update
> the windows properties, which seem fine to me and also are working
> properly under gnome2.
>
> Is it correct to assume that if the obxprop command gives the
> following result on the window:
>
> _NET_WM_STATE(ATOM) = _NET_WM_STATE_FULLSCREEN, _NET_WM_STATE_BELOW,
> _OB_WM_STATE_UNDECORATED
>
> The messages are correctly applied and the window is expected to stay
> below the others?

There is not much ambiguity in "MUST send a _NET_WM_STATE client
message to the root window".

-- 
Mikael Magnusson
_______________________________________________
openbox mailing list
[email protected]
http://icculus.org/mailman/listinfo/openbox
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.