On Feb 29, 2012, at 6:58 AM, Anthony Petrov wrote: > Hello, > > Please review a fix for http://bugs.sun.com/view_bug.do?bug_id=7145818 at: > > http://cr.openjdk.java.net/~anthony/x-21-popupInFullscreen-7145818.0/ > > Thanks Mike for the suggestion to use the [NSWindow toggleFullScreen] API. > I've tested the fix on both 10.7 and 10.6.8, and it works consistently on > both systems. Although the new API is claimed to be supported starting with > 10.7 only, it works fine on my 10.6.8 box as well (but prints out a warning > about sending an unrecognized selector to an AWTWindow instance.) > > I've also verified that the native resize events contain correct window size, > so I removed the machinery that sent synthetic events in the full screen mode.
A few points to consider: * To protect against the unrecognized selector problem, you should test if the AWTWindow object -respondsToSelector:@selector(toggleFullScreen) before just calling it. * Also, there is already API that calls -toggleFullScreen in the eAWT classes that you might not be aware of. You should probably test for interactions with that, since apps can opt their window into having a full screen widget icon and independently toggle fullscreen. * In some cases, seeing the menubar is actually desirable, where as in the "exclusive" mode, it's probably not. Perhaps you could consult a client property on the window to determine if the menu bar should be hidden? I like this overall solution, because it uses the native platform concept of full screen which doesn't trap the user from switching spaces like the Java SE 6 implementation did. Regards, Mike Swingler Apple Inc.
