diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index 4611e95efc..49674781a9 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -876,6 +876,8 @@ setting.seconds = {0} seconds setting.milliseconds = {0} milliseconds setting.fullscreen.name = Fullscreen setting.borderlesswindow.name = Borderless Window +setting.borderlesswindow.name.windows = Borderless Fullscreen +setting.borderlesswindow.description = Restart may be required to apply changes. setting.fps.name = Show FPS & Ping setting.smoothcamera.name = Smooth Camera setting.vsync.name = VSync diff --git a/core/src/mindustry/ui/dialogs/SettingsMenuDialog.java b/core/src/mindustry/ui/dialogs/SettingsMenuDialog.java index 7ba99bf975..38b6587322 100644 --- a/core/src/mindustry/ui/dialogs/SettingsMenuDialog.java +++ b/core/src/mindustry/ui/dialogs/SettingsMenuDialog.java @@ -369,6 +369,12 @@ public class SettingsMenuDialog extends Dialog{ if(!mobile){ graphics.checkPref("vsync", true, b -> Core.graphics.setVSync(b)); graphics.checkPref("fullscreen", false, b -> { + if(b && settings.getBool("borderlesswindow")){ + Core.graphics.setWindowedMode(Core.graphics.getWidth(), Core.graphics.getHeight()); + settings.put("borderlesswindow", false); + graphics.rebuild(); + } + if(b){ Core.graphics.setFullscreenMode(Core.graphics.getDisplayMode()); }else{ @@ -376,7 +382,14 @@ public class SettingsMenuDialog extends Dialog{ } }); - graphics.checkPref("borderlesswindow", false, b -> Core.graphics.setUndecorated(b)); + graphics.checkPref("borderlesswindow", false, b -> { + if(b && settings.getBool("fullscreen")){ + Core.graphics.setWindowedMode(Core.graphics.getWidth(), Core.graphics.getHeight()); + settings.put("fullscreen", false); + graphics.rebuild(); + } + Core.graphics.setBorderless(b); + }); Core.graphics.setVSync(Core.settings.getBool("vsync")); if(Core.settings.getBool("fullscreen")){ @@ -384,7 +397,7 @@ public class SettingsMenuDialog extends Dialog{ } if(Core.settings.getBool("borderlesswindow")){ - Core.app.post(() -> Core.graphics.setUndecorated(true)); + Core.app.post(() -> Core.graphics.setBorderless(true)); } }else if(!ios){ graphics.checkPref("landscape", false, b -> { @@ -612,7 +625,8 @@ public class SettingsMenuDialog extends Dialog{ Setting(String name){ this.name = name; - title = bundle.get("setting." + name + ".name"); + String winkey = "setting." + name + ".name.windows"; + title = OS.isWindows && bundle.has(winkey) ? bundle.get(winkey) : bundle.get("setting." + name + ".name"); description = bundle.getOrNull("setting." + name + ".description"); } diff --git a/gradle.properties b/gradle.properties index cab920b8aa..76a0b34f29 100644 --- a/gradle.properties +++ b/gradle.properties @@ -8,4 +8,4 @@ kapt.include.compile.classpath=false kotlin.stdlib.default.dependency=false #needed for android compilation android.useAndroidX=true -archash=0923799dd6adf2626b72cc30fc880425ea7eb3e0 +archash=e83b7b1c440763e585bcc3871b21e8dc89cf5a07 diff --git a/tests/src/test/java/power/FakeGraphics.java b/tests/src/test/java/power/FakeGraphics.java index 5f64aa61f3..4bbd0bb24c 100644 --- a/tests/src/test/java/power/FakeGraphics.java +++ b/tests/src/test/java/power/FakeGraphics.java @@ -154,7 +154,7 @@ public class FakeGraphics extends Graphics{ } @Override - public void setUndecorated(boolean undecorated){ + public void setBorderless(boolean undecorated){ }