From 610da8d7631482952a449ffc48922e3e6c9c1313 Mon Sep 17 00:00:00 2001 From: Glen Muthoka Mutinda Date: Sat, 7 Feb 2026 16:35:31 +0000 Subject: [PATCH] Handle exceptions in GetMonitorColorProfileFromWindow to log errors during desktop composition issues --- Helpers/DisplayDeviceHelper.cs | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/Helpers/DisplayDeviceHelper.cs b/Helpers/DisplayDeviceHelper.cs index b698c0d..08b61b3 100644 --- a/Helpers/DisplayDeviceHelper.cs +++ b/Helpers/DisplayDeviceHelper.cs @@ -77,8 +77,22 @@ public static ScaleFactor GetScaleFactorFromWindow(nint hwnd) public static string GetMonitorColorProfileFromWindow(Window window) { - var hMonitor = MonitorFromWindow(new WindowInteropHelper(window).EnsureHandle(), MonitorDefaults.TONEAREST); - return GetMonitorColorProfile(hMonitor); + try + { + var hMonitor = MonitorFromWindow(new WindowInteropHelper(window).EnsureHandle(), MonitorDefaults.TONEAREST); + return GetMonitorColorProfile(hMonitor); + } + catch (COMException ex) when (ex.HResult == unchecked((int)0x80263001)) + { + // Desktop composition is disabled (e.g., during eGPU reconnection) + ProcessHelper.WriteLog("Failed to get color profile: Desktop composition is disabled. This is expected during display reconfiguration."); + return null; + } + catch (Exception ex) + { + ProcessHelper.WriteLog($"Failed to get monitor color profile: {ex}"); + return null; + } } public static string GetMonitorColorProfile(nint hMonitor)