Hi, Manajit.> http://cr.openjdk.java.net/~mhalder/8190767/webrev.01/
After the window is shown behavior should be the same as in current
implementation(resizable windows should have canFullScreen=true, others
canFullScreen=false) so you cannot just set it to "true" or "false".
The issue is not reproducible in jdk8. >
Regards,
Manajit
On 31-Jan-2018, at 2:40 AM, Sergey Bylokhov
<sergey.bylok...@oracle.com <mailto:sergey.bylok...@oracle.com>> wrote:
Hi, Manajit.
Did you check that it works properly in jdk8?
I guess we need to set "WINDOW_FULLSCREENABLE" after we show the
window for the first time, with one exception if the window is
MAXIMIZED_BOTH.
On 29/01/2018 04:39, Manajit Halder wrote:
Hi All,
Kindly review the fix for JDK10.
Bug:
https://bugs.openjdk.java.net/browse/JDK-8190767
Webrev:
http://cr.openjdk.java.net/~mhalder/8190767/webrev.00/
Problem:
In this problem two unrelated windows are created (first window and
second window). If the second window is created when the first window
is in fullscreen then the second window will automatically be created
in fullscreen mode. This is the default behaviour with Cocoa windows.
The second window receives windowWillEnterFullScreen notification
when the first window is in fullscreen. windowWillEnterFullScreen
notification is system generated notification and there is no way to
prevent it.
Above conclusion was made after debugging the issue to find out if
there is any way to prevent the windowWillEnterFullScreen
notification and also to find out if it generated due to some
existing java (generic and native) code.
I wrote a simple Mac OS X application with 2 windows and observed the
same behaviour. The second window is created in fullscreen mode if it
is created when the first window is in fullscreen. Whereas the second
window is displayed normal if the first window is in normal mode (not
in fullscreen mode). The only way found to prevent the second window
going to fullscreen is don’t set this behaviour for the second window.
Fix:
The behaviour is normal on Mac OS. But if we want to prevent the
second (all windows except the primary window) window to
automatically created in fullscreen mode then the following fix can
be applicable.
By default all the Frames are set the WINDOW_FULLSCREENABLE property
and by default all frames receives fullscreen event if the first
frame is in fullscreen when it is created. Due to this setting the
second frame which is created on button click goes to fullscreen on
creation automatically. Mac OS fullscreen event notifications are
received in case the first frame is in fullscreen and
WINDOW_FULLSCREENABLE set for the second frame.
Only the first frame should have the WINDOW_FULLSCREENABLE property
set. The frames created in this case were ownerless windows as
mentioned earlier. Therefore it is not possible to find out the owner
of the current frame, it is null for all the frames created. Hence
the fix is if the current frame is the first frame then set the
property otherwise don’t set the property WINDOW_FULLSCREENABLE.
Regards,
Manajit
--
Best regards, Sergey.
--
Best regards, Sergey.