diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/setting/Profile.java b/HMCL/src/main/java/org/jackhuang/hmcl/setting/Profile.java index 6b7c4257b..78724cea0 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/setting/Profile.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/setting/Profile.java @@ -116,6 +116,7 @@ public final class Profile { VersionSetting vs = repository.getVersionSetting(id); if (vs == null || vs.isUsesGlobal()) { getGlobal().setGlobal(true); // always keep global.isGlobal = true + getGlobal().setUsesGlobal(true); return getGlobal(); } else return vs; diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/VersionSettingsController.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/VersionSettingsController.java index 162d30e5c..3c119270b 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/VersionSettingsController.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/VersionSettingsController.java @@ -173,6 +173,8 @@ public final class VersionSettingsController { else globalItem.getGroup().getToggles().stream().filter(it -> it.getUserData() == Boolean.FALSE).findFirst().ifPresent(it -> it.setSelected(true)); globalItem.setToggleSelectedListener(newValue -> { + // do not call versionSettings.setUsesGlobal(true/false) + // because versionSettings can be the global one. if ((Boolean) newValue.getUserData()) profile.globalizeVersionSetting(versionId); else