What I see in ./applemenu/src/org/netbeans/modules/applemenu/layer.xml is that
the generic action is hidden on macOS:
<!-- Hide menu items that belong on Apple's app menu -->
<folder name="Actions">
<folder name="Window">
<file
name="org-netbeans-core-windows-actions-ToggleFullScreenAction.instance_hidden"/>
</folder>
</folder>
That's why you are getting a null.
So, there is no API to call that action on macOS as far as I can tell.
This workaround does the trick (inspired by
https://gist.github.com/dohpaz42/4200907 ):
@SuppressWarnings({"unchecked", "rawtypes"})
public static void requestToggleFullScreen(Window window)
{
try {
Class appClass = Class.forName("com.apple.eawt.Application");
Class params[] = new Class[]{};
Method getApplication = appClass.getMethod("getApplication",
params);
Object application = getApplication.invoke(appClass);
Method requestToggleFulLScreen =
application.getClass().getMethod("requestToggleFullScreen", Window.class);
requestToggleFulLScreen.invoke(application, window);
} catch (Exception e) {
System.out.println("An exception occurred while trying to toggle
full screen mode");
}
}
requestToggleFullScreen(Frame.getWindows()[0]);
--emi
‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
On 6 June 2018 5:44 PM, Patrik Karlström <[email protected]> wrote:
> Den ons 6 juni 2018 kl 14:36 skrev Emilian Bold <[email protected]>:
>
> > The actual NPE might help. Maybe you have to create a dummy even and not
> > send null to actionPerformed?
> >
> > If it's reproducible you should report it to the bugtracker
> > https://issues.apache.org/jira/projects/NETBEANS/summary
> >
> > --emi
> >
> > ‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
> >
> > On 6 June 2018 2:36 PM, Patrik Karlström <[email protected]> wrote:
> >
> > > Hi,
> >
> > >
> >
> > > Actions.forID("Window",
> > > "org.netbeans.core.windows.actions.ToggleFullScreenAction").actionPerformed(null);
> >
> > >
> >
> > > I *think* that I have successfully run the code above on a mac a couple
> > > of years back, but that might have been before they changed their
> > > maximize/full screen handling.
> >
> > >
> >
> > > Today I noticed that it failed with an NPE on the mac.
>
> Just noticed that it is the action itself that is null.
>
> Action a=Actions.forID("Window",
> "org.netbeans.core.windows.actions.ToggleFullScreenAction");
>
> results in a==null.
>
> All this is done on JDK8 171 and NetBeans 8.2, and on what I guess is an up
> to date Mac.
>
> How does it work on other Macs?
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists