GUI: add setting to disable maximize workaround

issue #2575
This commit is contained in:
tildearrow 2025-06-18 03:32:39 -05:00
parent e209fd0b18
commit e23f1700a3
3 changed files with 15 additions and 4 deletions

View file

@ -7665,8 +7665,10 @@ bool FurnaceGUI::init() {
bool mustChange=false; bool mustChange=false;
if (scrW>((displaySize.w)-48) && scrH>((displaySize.h)-64)) { if (scrW>((displaySize.w)-48) && scrH>((displaySize.h)-64)) {
// maximize // maximize
SDL_MaximizeWindow(sdlWin); if (!settings.noMaximizeWorkaround) {
logD("maximizing as it doesn't fit (%dx%d+%d+%d).",displaySize.w,displaySize.h,displaySize.x,displaySize.y); 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) { if (scrW>displaySize.w) {
scrW=(displaySize.w)-32; scrW=(displaySize.w)-32;

View file

@ -2020,7 +2020,7 @@ class FurnaceGUI {
int autoFillSave; int autoFillSave;
int autoMacroStepSize; int autoMacroStepSize;
int backgroundPlay; int backgroundPlay;
int chanOscDCOffStrat; int noMaximizeWorkaround;
unsigned int maxUndoSteps; unsigned int maxUndoSteps;
float vibrationStrength; float vibrationStrength;
int vibrationLength; int vibrationLength;
@ -2276,6 +2276,7 @@ class FurnaceGUI {
autoFillSave(0), autoFillSave(0),
autoMacroStepSize(0), autoMacroStepSize(0),
backgroundPlay(0), backgroundPlay(0),
noMaximizeWorkaround(0),
maxUndoSteps(100), maxUndoSteps(100),
vibrationStrength(0.5f), vibrationStrength(0.5f),
vibrationLength(20), vibrationLength(20),

View file

@ -1195,6 +1195,12 @@ void FurnaceGUI::drawSettings() {
settingsChanged=true; 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 // SUBSECTION BEHAVIOR
CONFIG_SUBSECTION(_("Behavior")); CONFIG_SUBSECTION(_("Behavior"));
bool blankInsB=settings.blankIns; bool blankInsB=settings.blankIns;
@ -1202,7 +1208,6 @@ void FurnaceGUI::drawSettings() {
settings.blankIns=blankInsB; settings.blankIns=blankInsB;
settingsChanged=true; settingsChanged=true;
} }
// SUBSECTION CONFIGURATION // SUBSECTION CONFIGURATION
CONFIG_SUBSECTION(_("Configuration")); CONFIG_SUBSECTION(_("Configuration"));
if (ImGui::Button(_("Import"))) { if (ImGui::Button(_("Import"))) {
@ -4899,6 +4904,7 @@ void FurnaceGUI::readConfig(DivConfig& conf, FurnaceGUISettingGroups groups) {
settings.disableFadeIn=conf.getInt("disableFadeIn",0); settings.disableFadeIn=conf.getInt("disableFadeIn",0);
settings.alwaysPlayIntro=conf.getInt("alwaysPlayIntro",0); settings.alwaysPlayIntro=conf.getInt("alwaysPlayIntro",0);
settings.iCannotWait=conf.getInt("iCannotWait",0); settings.iCannotWait=conf.getInt("iCannotWait",0);
settings.noMaximizeWorkaround=conf.getInt("noMaximizeWorkaround",0);
settings.compress=conf.getInt("compress",1); settings.compress=conf.getInt("compress",1);
settings.newPatternFormat=conf.getInt("newPatternFormat",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.autoMacroStepSize,0,2);
clampSetting(settings.s3mOPL3,0,1); clampSetting(settings.s3mOPL3,0,1);
clampSetting(settings.backgroundPlay,0,1); clampSetting(settings.backgroundPlay,0,1);
clampSetting(settings.noMaximizeWorkaround,0,1);
if (settings.exportLoops<0.0) settings.exportLoops=0.0; if (settings.exportLoops<0.0) settings.exportLoops=0.0;
if (settings.exportFadeOut<0.0) settings.exportFadeOut=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("disableFadeIn",settings.disableFadeIn);
conf.set("alwaysPlayIntro",settings.alwaysPlayIntro); conf.set("alwaysPlayIntro",settings.alwaysPlayIntro);
conf.set("iCannotWait",settings.iCannotWait); conf.set("iCannotWait",settings.iCannotWait);
conf.set("noMaximizeWorkaround",settings.noMaximizeWorkaround);
conf.set("compress",settings.compress); conf.set("compress",settings.compress);
conf.set("newPatternFormat",settings.newPatternFormat); conf.set("newPatternFormat",settings.newPatternFormat);