private void UpdateCurrentComponentState(bool isInitializing = false) { if (Settings == null || SettingsBefore == null || (!Initialized && !isInitializing)) { return; } string globalLightBefore = SettingsBefore.Component.GlobalWallpaper.Light ?? ""; string globalDarkBefore = SettingsBefore.Component.GlobalWallpaper.Dark ?? ""; string globalLightAfter = Settings.Component.GlobalWallpaper.Light ?? ""; string globalDarkAfter = Settings.Component.GlobalWallpaper.Dark ?? ""; // check if the global wallpaper section has been modified. // Since we don't have target theme information here, if one value changes, we want a theme refresh if (!globalDarkBefore.Equals(globalDarkAfter)) { currentGlobalTheme = Theme.Unknown; } if (!globalLightBefore.Equals(globalLightAfter)) { currentGlobalTheme = Theme.Unknown; } // Same behavior with solid color if (!SettingsBefore.Component.SolidColors.Light.Equals(Settings.Component.SolidColors.Light)) { currentSolidColorTheme = Theme.Unknown; } if (!SettingsBefore.Component.SolidColors.Dark.Equals(Settings.Component.SolidColors.Dark)) { currentSolidColorTheme = Theme.Unknown; } // additinoally, if the user has changed the type dark before, an update is also required if (SettingsBefore.Component.TypeDark != Settings.Component.TypeDark) { StateUpdateOnTypeToggle(Settings.Component.TypeDark); } if (SettingsBefore.Component.TypeLight != Settings.Component.TypeLight) { StateUpdateOnTypeToggle(Settings.Component.TypeLight); } currentIndividualTheme = GetIndividualWallpapersState(); currentWallpaperPosition = WallpaperHandler.GetPosition(); }
public override void EnableHook() { WallpaperHandler.DetectMonitors(); currentWallpaperPosition = WallpaperHandler.GetPosition(); base.EnableHook(); }