Hi Leonid,

The fix looks somewhat risky so late in the release. But I talked with Sergey and I see that it resolves a lot of real problems. So I'm sort of OK with it. A few comments:

src/macosx/native/sun/awt/AWTWindow.m
 255     self.preFullScreenLevel = [self.nsWindow level];

The alwaysOnTop state may be changed dynamically, and thus the value stored in this property might get stale. Either, we don't need this initializer altogether since we need to store the level only after a window enters the full screen mode and don't care about it after we exit the mode, or we should update it dynamically (in -setPropertiesForStyleBits, I suppose).

src/macosx/classes/sun/lwawt/macosx/CPlatformLWView.java
In this View implementation we explicitly made enter/exitFSM() methods no-ops. What are the LWViews used for, and do they now allow entering the full screen mode after your fix? If yes, I think we should find a way to disable that.

--
best regards,
Anthony

On 10/25/2013 09:33 PM, Leonid Romanov wrote:
Hello,
Please review a fix for 8013581: [macosx] Key Bindings break with awt 
GraphicsEnvironment setFullScreenWindow
The problem here is that NSView's -enterFullScreenMode: withOptions: we 
currently use for entering exclusive full screen mode does it by creating a 
NSFullScreenWindow instance and moving the view from its window to that newly 
created full screen window. Since we do not control NSFullScreenWindow 
creation, we do not get any focus and other notifications from it.
The fix is to stop using -enterFullScreenMode: withOptions:  and just achieve 
the exclusive full screen mode manually.


Bug: https://bugs.openjdk.java.net/browse/JDK-8013581
Webrev: http://cr.openjdk.java.net/~leonidr/8013581/webrev.00/

Regards,
Leonid.

Reply via email to