From 1eb50672603606c21c980be6eb60ef020d673db4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20Trzci=C5=84ski?= Date: Tue, 15 Nov 2022 21:10:27 +0100 Subject: [PATCH] Try to recreate overlay if OSDIndex is 0, or not-0 --- PerformanceOverlay/Controller.cs | 4 +++- PowerControl/Controller.cs | 30 +++++++++++++++++++----------- 2 files changed, 22 insertions(+), 12 deletions(-) diff --git a/PerformanceOverlay/Controller.cs b/PerformanceOverlay/Controller.cs index c0362e8..7b4338b 100644 --- a/PerformanceOverlay/Controller.cs +++ b/PerformanceOverlay/Controller.cs @@ -168,7 +168,9 @@ namespace PerformanceOverlay try { - osdClose(); + // recreate OSD if not index 0 + if (osd != null && osd.OSDIndex() != 0) + osdClose(); if (osd == null) osd = new OSD("PerformanceOverlay"); diff --git a/PowerControl/Controller.cs b/PowerControl/Controller.cs index dad2994..76e0c6a 100644 --- a/PowerControl/Controller.cs +++ b/PowerControl/Controller.cs @@ -1,4 +1,4 @@ -using CommonHelpers; +using CommonHelpers; using CommonHelpers.FromLibreHardwareMonitor; using Microsoft.VisualBasic.Logging; using PowerControl.External; @@ -243,20 +243,15 @@ namespace PowerControl { if (!rootMenu.Visible) { - try - { - if (osd != null) - osd.Dispose(); - osd = null; - } - catch (SystemException) - { - } + osdClose(); return; } try { + // recreate OSD if not index 0 + if (osd != null && osd.OSDIndex() == 0) + osdClose(); if (osd == null) osd = new OSD("Power Control"); osd.Update(rootMenu.Render(null)); @@ -274,7 +269,20 @@ namespace PowerControl public void Dispose() { components.Dispose(); - hideOSD(); + osdClose(); + } + + private void osdClose() + { + try + { + if (osd != null) + osd.Dispose(); + osd = null; + } + catch (SystemException) + { + } } } }