diff --git a/src/gui/gui.cpp b/src/gui/gui.cpp index f56a982ea..22223a350 100644 --- a/src/gui/gui.cpp +++ b/src/gui/gui.cpp @@ -7665,8 +7665,10 @@ bool FurnaceGUI::init() { bool mustChange=false; if (scrW>((displaySize.w)-48) && scrH>((displaySize.h)-64)) { // maximize - SDL_MaximizeWindow(sdlWin); - logD("maximizing as it doesn't fit (%dx%d+%d+%d).",displaySize.w,displaySize.h,displaySize.x,displaySize.y); + if (!settings.noMaximizeWorkaround) { + SDL_MaximizeWindow(sdlWin); + logD("maximizing as it doesn't fit (%dx%d+%d+%d).",displaySize.w,displaySize.h,displaySize.x,displaySize.y); + } } if (scrW>displaySize.w) { scrW=(displaySize.w)-32; diff --git a/src/gui/gui.h b/src/gui/gui.h index 41d979142..a7547f47e 100644 --- a/src/gui/gui.h +++ b/src/gui/gui.h @@ -2020,7 +2020,7 @@ class FurnaceGUI { int autoFillSave; int autoMacroStepSize; int backgroundPlay; - int chanOscDCOffStrat; + int noMaximizeWorkaround; unsigned int maxUndoSteps; float vibrationStrength; int vibrationLength; @@ -2276,6 +2276,7 @@ class FurnaceGUI { autoFillSave(0), autoMacroStepSize(0), backgroundPlay(0), + noMaximizeWorkaround(0), maxUndoSteps(100), vibrationStrength(0.5f), vibrationLength(20), diff --git a/src/gui/settings.cpp b/src/gui/settings.cpp index 005d8d235..13d94ef12 100644 --- a/src/gui/settings.cpp +++ b/src/gui/settings.cpp @@ -1195,6 +1195,12 @@ void FurnaceGUI::drawSettings() { settingsChanged=true; } + bool noMaximizeWorkaroundB=settings.noMaximizeWorkaround; + if (ImGui::Checkbox(_("Do not maximize on start-up when the Furnace window is too big"),&noMaximizeWorkaroundB)) { + settings.noMaximizeWorkaround=noMaximizeWorkaroundB; + settingsChanged=true; + } + // SUBSECTION BEHAVIOR CONFIG_SUBSECTION(_("Behavior")); bool blankInsB=settings.blankIns; @@ -1202,7 +1208,6 @@ void FurnaceGUI::drawSettings() { settings.blankIns=blankInsB; settingsChanged=true; } - // SUBSECTION CONFIGURATION CONFIG_SUBSECTION(_("Configuration")); if (ImGui::Button(_("Import"))) { @@ -4899,6 +4904,7 @@ void FurnaceGUI::readConfig(DivConfig& conf, FurnaceGUISettingGroups groups) { settings.disableFadeIn=conf.getInt("disableFadeIn",0); settings.alwaysPlayIntro=conf.getInt("alwaysPlayIntro",0); settings.iCannotWait=conf.getInt("iCannotWait",0); + settings.noMaximizeWorkaround=conf.getInt("noMaximizeWorkaround",0); settings.compress=conf.getInt("compress",1); settings.newPatternFormat=conf.getInt("newPatternFormat",1); @@ -5431,6 +5437,7 @@ void FurnaceGUI::readConfig(DivConfig& conf, FurnaceGUISettingGroups groups) { clampSetting(settings.autoMacroStepSize,0,2); clampSetting(settings.s3mOPL3,0,1); clampSetting(settings.backgroundPlay,0,1); + clampSetting(settings.noMaximizeWorkaround,0,1); if (settings.exportLoops<0.0) settings.exportLoops=0.0; if (settings.exportFadeOut<0.0) settings.exportFadeOut=0.0; @@ -5499,6 +5506,7 @@ void FurnaceGUI::writeConfig(DivConfig& conf, FurnaceGUISettingGroups groups) { conf.set("disableFadeIn",settings.disableFadeIn); conf.set("alwaysPlayIntro",settings.alwaysPlayIntro); conf.set("iCannotWait",settings.iCannotWait); + conf.set("noMaximizeWorkaround",settings.noMaximizeWorkaround); conf.set("compress",settings.compress); conf.set("newPatternFormat",settings.newPatternFormat);