diff --git a/main/commons/src/main/java/org/cryptomator/common/settings/UiTheme.java b/main/commons/src/main/java/org/cryptomator/common/settings/UiTheme.java index 8df1e7f89..62fe714e4 100644 --- a/main/commons/src/main/java/org/cryptomator/common/settings/UiTheme.java +++ b/main/commons/src/main/java/org/cryptomator/common/settings/UiTheme.java @@ -8,7 +8,7 @@ public enum UiTheme { AUTOMATIC("preferences.general.theme.automatic"); public static UiTheme[] applicableValues() { - if (SystemUtils.IS_OS_MAC) { + if (SystemUtils.IS_OS_MAC || SystemUtils.IS_OS_WINDOWS) { return values(); } else { return new UiTheme[]{LIGHT, DARK}; diff --git a/main/ui/src/main/java/org/cryptomator/ui/fxapp/FxApplication.java b/main/ui/src/main/java/org/cryptomator/ui/fxapp/FxApplication.java index 65e6d1c6c..73c04fe5f 100644 --- a/main/ui/src/main/java/org/cryptomator/ui/fxapp/FxApplication.java +++ b/main/ui/src/main/java/org/cryptomator/ui/fxapp/FxApplication.java @@ -137,13 +137,13 @@ public class FxApplication extends Application { } private void appThemeChanged(@SuppressWarnings("unused") ObservableValue observable, @SuppressWarnings("unused") UiTheme oldValue, UiTheme newValue) { - appearanceProvider.ifPresent(appearanceProvider -> { + if (appearanceProvider.isPresent() && oldValue == UiTheme.AUTOMATIC && newValue != UiTheme.AUTOMATIC) { try { - appearanceProvider.removeListener(systemInterfaceThemeListener); + appearanceProvider.get().removeListener(systemInterfaceThemeListener); } catch (UiAppearanceException e) { LOG.error("Failed to disable automatic theme switching."); } - }); + } loadSelectedStyleSheet(newValue); }