From abc5b2580039188f37fad1d3d87100f4e46e7cb2 Mon Sep 17 00:00:00 2001 From: Serge <5920850+seerge@users.noreply.github.com> Date: Thu, 6 Jun 2024 11:57:15 +0200 Subject: [PATCH] Reset Gamut dropdown to default on Dimming change https://github.com/seerge/g-helper/issues/2543 --- app/Display/VisualControl.cs | 21 +++++++++++++++++++-- app/Settings.cs | 8 ++++++++ 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/app/Display/VisualControl.cs b/app/Display/VisualControl.cs index e33d0462..a19733bc 100644 --- a/app/Display/VisualControl.cs +++ b/app/Display/VisualControl.cs @@ -51,6 +51,8 @@ namespace GHelper.Display public const int DefaultColorTemp = 50; public static bool forceVisual = false; + public static bool skipGamut = false; + static VisualControl() { brightnessTimer.Elapsed += BrightnessTimerTimer_Elapsed; @@ -169,6 +171,7 @@ namespace GHelper.Display public static void SetGamut(int mode = -1) { + if (skipGamut) return; if (mode < 0) mode = (int)GetDefaultGamut(); AppConfig.Set("gamut", mode); @@ -197,8 +200,9 @@ namespace GHelper.Display if (whiteBalance != DefaultColorTemp && !init) ProcessHelper.RunAsAdmin(); int? balance; - - switch (mode) { + + switch (mode) + { case SplendidCommand.Eyecare: balance = 2; break; @@ -296,10 +300,23 @@ namespace GHelper.Display brightnessTimer.Start(); Program.settingsForm.VisualiseBrightness(); + if (brightness < 100) ResetGamut(); return _brightness; } + public static void ResetGamut() + { + int defaultGamut = (int)GetDefaultGamut(); + + if (AppConfig.Get("gamut") != defaultGamut) + { + skipGamut = true; + AppConfig.Set("gamut", defaultGamut); + Program.settingsForm.VisualiseGamut(); + skipGamut = false; + } + } public static void SetGamma(int brightness = 100) diff --git a/app/Settings.cs b/app/Settings.cs index 0133c9d7..8e9b3ce4 100644 --- a/app/Settings.cs +++ b/app/Settings.cs @@ -443,6 +443,14 @@ namespace GHelper }); } + public void VisualiseGamut() + { + Invoke(delegate + { + if (comboGamut.Items.Count > 0) comboGamut.SelectedIndex = 0; + }); + } + private void SliderGamma_ValueChanged(object? sender, EventArgs e) { if (sliderGammaIgnore) return;