Improve monitor rotation using GDI device name

Refactor monitor discovery and rotation logic to use the GdiDeviceName property for accurate display targeting, especially in multi-monitor setups. Update the Monitor model to include GdiDeviceName, adjust DisplayRotationService and MonitorManager to use it, and enhance logging for better traceability. Also, unify hardware property application in MonitorViewModel to reduce code duplication. These changes increase reliability and maintainability of monitor control operations.
This commit is contained in:
Yu Leng
2025-12-10 14:16:28 +08:00
parent 4817709fda
commit 77a7c04b2e
6 changed files with 57 additions and 55 deletions

View File

@@ -299,14 +299,9 @@ namespace PowerDisplay.Helpers
return Task.FromResult(MonitorOperationResult.Failure("Monitor not found"));
}
if (monitor.MonitorNumber <= 0)
{
Logger.LogError($"[MonitorManager] SetRotation: Invalid monitor number for {monitorId}");
return Task.FromResult(MonitorOperationResult.Failure("Invalid monitor number"));
}
// Rotation uses Windows display settings API, not DDC/CI controller
var result = _rotationService.SetRotation(monitor.MonitorNumber, orientation);
// Prefer using Monitor object which contains GdiDeviceName for accurate adapter targeting
var result = _rotationService.SetRotation(monitor, orientation);
if (result.IsSuccess)
{