Modal dialogs for fullscreen window (original) (raw)
Vladimir Kravets vova.kravets at gmail.com
Tue Apr 16 09:03:49 PDT 2013
- Previous message: Modal dialogs for fullscreen window
- Next message: Modal dialogs for fullscreen window
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
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 WMTRANSIENTFOR should set type NETWMWINDOWTYPEDIALOG.
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 NETWMWINDOWTYPE if this set it will set the window type according to this type and WMTRANSIENTFOR will not check in this case. If NETWMWINDOWTYPE is not set and WMTRANSIENTFOR is set the mutter will set to this window the NETWMWINDOWTYPEDIALOG window type. Thus NETWMWINDOWTYPE have more priority then WMTRANSIENTFOR... Thus since AWT even for dialogs set NETWMWINDOWTYPENORMAL (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/7dbcfc64/attachment.html
- Previous message: Modal dialogs for fullscreen window
- Next message: Modal dialogs for fullscreen window
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]