<AWT Dev> Modal dialogs for fullscreen window
Vladimir Kravets
vova.kravets at gmail.com
Tue Apr 16 09:03:49 PDT 2013
Guys we have the real problem....And appears it not related to fullscreen
window =)
If window.alwaysOnTop(true) all dialogs in Metacity and its clones will be
shown under the main window..... =(
Thanks,
Vladimir
2013/4/16 Vladimir Kravets <vova.kravets at gmail.com>
> I look at the mutter source and found that for dialog or for window which
> have WM_TRANSIENT_FOR should set type _NET_WM_WINDOW_TYPE_DIALOG.
>
> If you look at
> https://git.gnome.org/browse/mutter/tree/src/core/window.c#n8059 and
> https://git.gnome.org/browse/mutter/tree/src/core/window.c#n8120
>
> At the fist step will check _NET_WM_WINDOW_TYPE if this set it will set
> the window type according to this type and WM_TRANSIENT_FOR will not check
> in this case. If _NET_WM_WINDOW_TYPE is not set and WM_TRANSIENT_FOR is set
> the mutter will set to this window the _NET_WM_WINDOW_TYPE_DIALOG window
> type. Thus _NET_WM_WINDOW_TYPE have more priority then WM_TRANSIENT_FOR...
>
> Thus since AWT even for dialogs set _NET_WM_WINDOW_TYPE_NORMAL (AWT sets
> this always!!!!) we have incorrect behavior of modal dialogs in mutter and
> posible in another WM which using the same behavior.
>
> Please fix this, since it's regression from 1.7 and this problem touch
> even Gnome3!
>
>
> 2013/4/16 Vladimir Kravets <vova.kravets at gmail.com>
>
>> Heh... I see that Anthony made this changes 3 years ago =(
>> http://hg.openjdk.java.net/jdk7/build/jdk/rev/ca34cfff70a4
>>
>> Thanks,
>> Vladimir
>>
>>
>>
>> 2013/4/16 Artem Ananiev <artem.ananiev at oracle.com>
>>
>>> Hi, Vladimir,
>>>
>>> I took a short look at your test at github. The test implements its own
>>> mechanism to enter fullscreen by adding _NET_WM_STATE_FULLSCREEN to the
>>> list of atoms in _NET_WM_STATE. There may be a conflict between XToolkit
>>> and the test, for example, caused by using different Display objects.
>>>
>>> In XToolkit, _NET_WM_STATE_FULLSCREEN is only used in exclusive
>>> fullscreen mode, see the code in X11GraphicsDevice. I can't say for sure if
>>> OpenGL is used in this case. As for owned windows, nothing special is done
>>> about them. If a window has an owner, WM_TRANSIENT_FOR is set for it, which
>>> should be respected by WM. As you say that WM_TRANSIENT_FOR works fine
>>> together with _NET_WM_STATE_FULLSCREEN in most of the modern WMs, it should
>>> work for Java windows as well.
>>>
>>> Could you check all the window properties both for the fullscreen window
>>> and for the child windows, in your environment, please? Are there any
>>> chances some of the properties (_NET_WM_STATE, WM_TRANSIENT_FOR) are not
>>> set for some reason?
>>>
>>> Thanks,
>>>
>>> Artem
>>>
>>>
>>> On 4/15/2013 8:56 PM, Vladimir Kravets wrote:
>>>
>>>> Hi guys,
>>>>
>>>> I'm using in my application fullscreen mode. Since 1.6 java have a lot
>>>> of issue with it I using X11 native binding for it.
>>>> Use JNA 3.4. To going to fullscreen I send XSendEvent as _NET_WM_STATE
>>>> with _NET_WM_STATE_FULLSCREEN
>>>>
>>>> You can look at test application on the github:
>>>> https://github.com/vkravets/**FullScreenTest<https://github.com/vkravets/FullScreenTest>.
>>>> Main Class: Main or MinTest
>>>>
>>>> So about the issue... I have an issue with modal dialogs or windows
>>>> which I try to show when my main window in fullscreen mode.
>>>> From 1.7 java is not working as expected. In 1.6 java modal
>>>> dialogs/windows appeared above fullscreen window as it should be, but in
>>>> 1.7 and 1.8 all modal dialogs/windows appeared under the fullscreen
>>>> window.
>>>>
>>>> I'm using wm Metacity, the same I have noticed on Gnome Shell... It
>>>> seems that it's related to all clones of Metacity...
>>>>
>>>> I'm try to see how it's perform by defult native frameworks and I tested
>>>> GTK3 and SWT which is using GTK bindings. And everything is working as
>>>> expected. SmartGit which written on Java and use SWT don't have such
>>>> problem. VLC/GTK the same - in fullscreen mode I can call some dialogs
>>>> which will be appeared above fullscreen window.
>>>>
>>>> It's very strange for me that Java in own documentation have such
>>>> lines:
>>>> Quote from GraphicsDevice#**setFullScreenWindow:
>>>> "
>>>> Windows cannot overlap the full-screen window. All other application
>>>> windows will always appear beneath the full-screen window in the
>>>> Z-order.
>>>> "
>>>>
>>>> Since from 1.7 java is using the same message _NET_WM_STATE with
>>>> _NET_WM_STATE_FULLSCREEN to going to fullscreeb and is not clear why we
>>>> have such broken behavior with modal dialogs from 1.7 java and such
>>>> lines in the documentation....
>>>>
>>>> I'm already posted a defect to Oracle but Ithink it will be marked as
>>>> duplicate since I found such issue
>>>> http://bugs.sun.com/**bugdatabase/view_bug.do?bug_**id=7192269<http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7192269>which marked
>>>> as Not an Issue and for me is not clear why?
>>>>
>>>> Could you please suggest workaround? Or please fix this =)
>>>>
>>>> Best Regards,
>>>> Vladimir
>>>>
>>>>
>>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/awt-dev/attachments/20130416/7dbcfc64/attachment.html
More information about the awt-dev
mailing list