diff --git a/Mage.Client/src/main/java/mage/client/MageFrame.java b/Mage.Client/src/main/java/mage/client/MageFrame.java index 3e1aeea3094..5e3bdc32014 100644 --- a/Mage.Client/src/main/java/mage/client/MageFrame.java +++ b/Mage.Client/src/main/java/mage/client/MageFrame.java @@ -104,6 +104,7 @@ public class MageFrame extends javax.swing.JFrame implements MageClient { private static final Logger logger = Logger.getLogger(MageFrame.class); private static final String liteModeArg = "-lite"; private static final String grayModeArg = "-gray"; + private static final String fullscreenArg = "-fullscreen"; private static MageFrame instance; @@ -120,6 +121,7 @@ public class MageFrame extends javax.swing.JFrame implements MageClient { private static boolean liteMode = false; //TODO: make gray theme, implement theme selector in preferences dialog private static boolean grayMode = false; + private static boolean fullscreenMode = false; private static final Map chats = new HashMap<>(); private static final Map games = new HashMap<>(); @@ -317,6 +319,9 @@ public class MageFrame extends javax.swing.JFrame implements MageClient { if (SystemUtil.isMacOSX()) { SystemUtil.enableMacOSFullScreenMode(this); + if (fullscreenMode) { + SystemUtil.toggleMacOSFullScreenMode(this); + } } } @@ -1103,6 +1108,9 @@ public class MageFrame extends javax.swing.JFrame implements MageClient { if (arg.startsWith(grayModeArg)) { grayMode = true; } + if (arg.startsWith(fullscreenArg)) { + fullscreenMode = true; + } } if (!liteMode) { final SplashScreen splash = SplashScreen.getSplashScreen(); diff --git a/Mage.Client/src/main/java/mage/client/util/SystemUtil.java b/Mage.Client/src/main/java/mage/client/util/SystemUtil.java index 46119a5e173..6dd4e476b6d 100644 --- a/Mage.Client/src/main/java/mage/client/util/SystemUtil.java +++ b/Mage.Client/src/main/java/mage/client/util/SystemUtil.java @@ -32,6 +32,25 @@ public class SystemUtil { } } + public static void toggleMacOSFullScreenMode(Window window) { + String className = "com.apple.eawt.Application"; + String methodName = "getApplication"; + String methodName2 = "requestToggleFullScreen"; + + try { + Class clazz = Class.forName(className); + Method method = clazz.getMethod(methodName); + Object appInstance = method.invoke(clazz); + + Class params[] = new Class[]{Window.class}; + method = clazz.getMethod(methodName2, params); + method.invoke(appInstance, window); + } catch (Throwable t) { + System.err.println("Full screen mode is not supported"); + t.printStackTrace(); + } + } + public static void main(String... args) { System.out.println(isMacOSX()); }