Modal dialogs for fullscreen window (original) (raw)
Vladimir Kravets vova.kravets at gmail.com
Tue Apr 16 08:48:56 PDT 2013
- Previous message: Modal dialogs for fullscreen window
- Next message: Modal dialogs for fullscreen window
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
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 NETWMSTATEFULLSCREEN to the list of atoms in NETWMSTATE. There may be a conflict between XToolkit and the test, for example, caused by using different Display objects. In XToolkit, NETWMSTATEFULLSCREEN 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, WMTRANSIENTFOR is set for it, which should be respected by WM. As you say that WMTRANSIENTFOR works fine together with NETWMSTATEFULLSCREEN 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 (NETWMSTATE, WMTRANSIENTFOR) 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 NETWMSTATE with NETWMSTATEFULLSCREEN 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 NETWMSTATE with NETWMSTATEFULLSCREEN 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/viewbug.do?bugid=7192269<http://bugs.sun.com/bugdatabase/viewbug.do?bugid=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/8300c3b5/attachment.html
- Previous message: Modal dialogs for fullscreen window
- Next message: Modal dialogs for fullscreen window
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]