From c9a349125d0db6179da177cd0007eb74c44f7e40 Mon Sep 17 00:00:00 2001 From: Terry MacDonald Date: Wed, 2 Feb 2022 11:25:11 +1300 Subject: [PATCH] [WIP] Added forcing taskbar edge ability --- DisplayMagician/Properties/AssemblyInfo.cs | 4 ++-- DisplayMagicianShared/Windows/WinLibrary.cs | 12 ++++++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/DisplayMagician/Properties/AssemblyInfo.cs b/DisplayMagician/Properties/AssemblyInfo.cs index 991a156..7a577d8 100644 --- a/DisplayMagician/Properties/AssemblyInfo.cs +++ b/DisplayMagician/Properties/AssemblyInfo.cs @@ -26,8 +26,8 @@ using System.Resources; [assembly: Guid("e4ceaf5e-ad01-4695-b179-31168eb74c48")] // Version information -[assembly: AssemblyVersion("2.2.0.154")] -[assembly: AssemblyFileVersion("2.2.0.154")] +[assembly: AssemblyVersion("2.2.0.157")] +[assembly: AssemblyFileVersion("2.2.0.157")] [assembly: NeutralResourcesLanguageAttribute( "en" )] [assembly: CLSCompliant(true)] diff --git a/DisplayMagicianShared/Windows/WinLibrary.cs b/DisplayMagicianShared/Windows/WinLibrary.cs index c9ee464..8b4c7c7 100644 --- a/DisplayMagicianShared/Windows/WinLibrary.cs +++ b/DisplayMagicianShared/Windows/WinLibrary.cs @@ -653,6 +653,7 @@ namespace DisplayMagicianShared.Windows windowsDisplayConfig.DisplayConfigModes = modes; windowsDisplayConfig.GdiDisplaySettings = GetGdiDisplaySettings(); windowsDisplayConfig.TaskBarLayout = taskBarStuckRectangles; + windowsDisplayConfig.OriginalTaskBarLayout = new List(taskBarStuckRectangles); windowsDisplayConfig.TaskBarSettings = taskBarSettings; return windowsDisplayConfig; @@ -1385,6 +1386,17 @@ namespace DisplayMagicianShared.Windows { if (tbsr.Version >= 2 && tbsr.Version <= 3) { + // Reset the Binary string back to when we grabbed it + tbsr.OriginalBinary.CopyTo(tbsr.Binary, 0); + + // If we have any forced edge, then force it! + if (displayConfig.TaskBarForcedEdge != TaskBarForcedEdge.None) + { + // Force the edge if it needs forcing + tbsr.Edge = (TaskBarStuckRectangle.TaskBarEdge)displayConfig.TaskBarForcedEdge; + } + + // Write the changes to registry tbsr.WriteToRegistry(); } else