Fwd: Modal dialogs for fullscreen window (original) (raw)

Vladimir Kravets vova.kravets at gmail.com
Tue Apr 16 02:50:31 PDT 2013


I'm talking for X11 implementation only... Since in this case to going to fullscreen you use native X11 _NET_WM_STATE_FULLSCREEN atom which mean is not exclusive fullscreen mode. In this case all WM which is use this mode can show any child modal dialogs above fullscreen window. As I said before this is a regression since on the Java 1.6 everything is working well with code with I mentioned above. For another OS's impelementation should be stays as is since it's using "real" exclusive fullscreen mode. (E.g. window

If you want to going to fullscreen exclusive mode on Linux I think need to used OpenGL api, not WM api. Because in this case it's not exclusive fullscreen mode, but in window manager fullscreen mode is able to switch between another windows and show application level windows above fullscreen window.

BTW, Oracle NetBeens faced with the same issue with is not logical as for me... As I said before all WM and frameworks like (QT, GTK, SWT) on Linux support such behavior and it's logical because this is only application level (window manager) fullscreen mode, not exclusive.

I think in this case need to support exclusive fullscreen which will be used (e.g. OpenGL) and non exclusive which will use above mentioned atom.

BTW exclusive moden with _NET_WM_STATE_FULLSCREEN can be also doing by OverrideRedirect window type.

In any case since this is a regression which made in 1.7 current behavior is not logical for me and as I know for alot of devs....

Any suggestion about this?

Thanks, Vladimir

2013/4/16 Anthony Petrov <anthony.petrov at oracle.com>

This issue cannot be fixed for all platforms. E.g. on MS Windows this is technically impossible to display a regular top-level window in the exclusive full screen mode. I suppose that the same limitation may apply to the exclusive full screen mode on other platforms, too. So this just can't be fixed.

Please note that you only need the exclusive full screen mode for high performance rendering (e.g. for video games), in which case you most probably don't want to display any top-level windows anyway since they are going to look inconsistent with the rest of your UI. However, in the emulated full screen mode the rendering performance may not be as good as in the exclusive mode. Thus, depending on your particular needs you should choose and use the right full screen mode for your application. -- best regards, Anthony

On 4/16/2013 13:15, Vladimir Kravets wrote: Hi Anthony,

Thanks a lot for workaround, I will definitely try to use it... But, is this issue will be fixed? Thanks, Vladimir

2013/4/16 Anthony Petrov <anthony.petrov at oracle.com <mailto:_ _anthony.petrov at oracle.**com <anthony.petrov at oracle.com>>> Hi Vladimir, A workaround is to not use the exclusive full screen mode, but instead emulate it. Call Window.setAlwaysOnTop(true), and then resize your window to occupy the whole screen area as reported by GraphicsConfiguration. getBounds(). -- best regards, Anthony On 4/15/2013 20:56, 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<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?bug id=7192269 <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/ecf6505e/attachment.html



More information about the awt-dev mailing list