From 3aabc0fcd1ff3791441d3eeff472ab62f5c179ca Mon Sep 17 00:00:00 2001 From: Yu Leng Date: Tue, 2 Dec 2025 17:19:18 +0800 Subject: [PATCH] Update ApplyFeatureVisibility to use InternalName instead of HardwareId for monitor settings --- .../ViewModels/MainViewModel.Settings.cs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/modules/powerdisplay/PowerDisplay/ViewModels/MainViewModel.Settings.cs b/src/modules/powerdisplay/PowerDisplay/ViewModels/MainViewModel.Settings.cs index 6e761a3d31..8babf97a1e 100644 --- a/src/modules/powerdisplay/PowerDisplay/ViewModels/MainViewModel.Settings.cs +++ b/src/modules/powerdisplay/PowerDisplay/ViewModels/MainViewModel.Settings.cs @@ -452,11 +452,11 @@ public partial class MainViewModel private void ApplyFeatureVisibility(MonitorViewModel monitorVm, PowerDisplaySettings settings) { var monitorSettings = settings.Properties.Monitors.FirstOrDefault(m => - m.HardwareId == monitorVm.HardwareId); + m.InternalName == monitorVm.InternalName); if (monitorSettings != null) { - Logger.LogInfo($"[Startup] Applying feature visibility for Hardware ID '{monitorVm.HardwareId}': Contrast={monitorSettings.EnableContrast}, Volume={monitorSettings.EnableVolume}, InputSource={monitorSettings.EnableInputSource}, Rotation={monitorSettings.EnableRotation}"); + Logger.LogInfo($"[Startup] Applying feature visibility for '{monitorVm.InternalName}': Contrast={monitorSettings.EnableContrast}, Volume={monitorSettings.EnableVolume}, InputSource={monitorSettings.EnableInputSource}, Rotation={monitorSettings.EnableRotation}"); monitorVm.ShowContrast = monitorSettings.EnableContrast; monitorVm.ShowVolume = monitorSettings.EnableVolume; @@ -465,7 +465,7 @@ public partial class MainViewModel } else { - Logger.LogWarning($"[Startup] No feature settings found for Hardware ID '{monitorVm.HardwareId}' - using defaults"); + Logger.LogWarning($"[Startup] No feature settings found for '{monitorVm.InternalName}' - using defaults"); } } @@ -498,9 +498,9 @@ public partial class MainViewModel // Load current settings to preserve user preferences (including IsHidden) var settings = _settingsUtils.GetSettingsOrDefault(PowerDisplaySettings.ModuleName); - // Create lookup of existing monitors by HardwareId to preserve settings + // Create lookup of existing monitors by InternalName to preserve settings var existingMonitorSettings = settings.Properties.Monitors - .ToDictionary(m => m.HardwareId, m => m); + .ToDictionary(m => m.InternalName, m => m); // Build monitor list using Settings UI's MonitorInfo model var monitors = new List(); @@ -516,10 +516,10 @@ public partial class MainViewModel foreach (var existingMonitor in settings.Properties.Monitors.Where(m => m.IsHidden)) { // Only add if not already in the list (to avoid duplicates) - if (!monitors.Any(m => m.HardwareId == existingMonitor.HardwareId)) + if (!monitors.Any(m => m.InternalName == existingMonitor.InternalName)) { monitors.Add(existingMonitor); - Logger.LogInfo($"[SaveMonitorsToSettings] Preserving hidden monitor in settings: {existingMonitor.Name} (HardwareId: {existingMonitor.HardwareId})"); + Logger.LogInfo($"[SaveMonitorsToSettings] Preserving hidden monitor in settings: {existingMonitor.Name} ({existingMonitor.InternalName})"); } } @@ -607,7 +607,7 @@ public partial class MainViewModel Microsoft.PowerToys.Settings.UI.Library.MonitorInfo monitorInfo, Dictionary existingSettings) { - if (existingSettings.TryGetValue(monitorInfo.HardwareId, out var existingMonitor)) + if (existingSettings.TryGetValue(monitorInfo.InternalName, out var existingMonitor)) { monitorInfo.IsHidden = existingMonitor.IsHidden; monitorInfo.EnableContrast = existingMonitor.EnableContrast;