[FancyZones] Monitor id comparison fix (#19312)

* added monitor number to id comparison

* added monitor number to id in editor

* empty serial number comparison
This commit is contained in:
Seraphima Zykova
2022-07-11 17:39:03 +02:00
committed by GitHub
parent c36a80dad5
commit 73c259342b
12 changed files with 150 additions and 60 deletions

View File

@@ -17,6 +17,8 @@ namespace FancyZonesEditor.Utils
public string MonitorSerialNumber { get; set; }
public int MonitorNumber { get; set; }
public Size MonitorSize { get; set; }
public string VirtualDesktopId { get; set; }

View File

@@ -81,6 +81,8 @@ namespace FancyZonesEditor.Utils
public string MonitorSerialNumber { get; set; }
public int MonitorNumber { get; set; }
public string VirtualDesktop { get; set; }
public int Dpi { get; set; }
@@ -134,6 +136,8 @@ namespace FancyZonesEditor.Utils
public string MonitorInstance { get; set; }
public int MonitorNumber { get; set; }
public string SerialNumber { get; set; }
public string VirtualDesktop { get; set; }
@@ -319,6 +323,7 @@ namespace FancyZonesEditor.Utils
string targetMonitorId = string.Empty;
string targetMonitorSerialNumber = string.Empty;
string targetVirtualDesktop = string.Empty;
int targetMonitorNumber = 0;
foreach (NativeMonitorData nativeData in editorParams.Monitors)
{
@@ -327,6 +332,7 @@ namespace FancyZonesEditor.Utils
{
targetMonitorId = nativeData.Monitor;
targetMonitorSerialNumber = nativeData.MonitorSerialNumber;
targetMonitorNumber = nativeData.MonitorNumber;
targetVirtualDesktop = nativeData.VirtualDesktop;
}
@@ -336,6 +342,7 @@ namespace FancyZonesEditor.Utils
monitor.Device.MonitorName = nativeData.Monitor;
monitor.Device.MonitorInstanceId = nativeData.MonitorInstanceId;
monitor.Device.MonitorSerialNumber = nativeData.MonitorSerialNumber;
monitor.Device.MonitorNumber = nativeData.MonitorNumber;
monitor.Device.VirtualDesktopId = nativeData.VirtualDesktop;
monitor.Device.Dpi = nativeData.Dpi;
@@ -349,6 +356,7 @@ namespace FancyZonesEditor.Utils
var monitor = monitors[i];
if (monitor.Device.MonitorName == targetMonitorId &&
monitor.Device.MonitorSerialNumber == targetMonitorSerialNumber &&
monitor.Device.MonitorNumber == targetMonitorNumber &&
monitor.Device.VirtualDesktopId == targetVirtualDesktop)
{
App.Overlay.CurrentDesktop = i;
@@ -371,6 +379,7 @@ namespace FancyZonesEditor.Utils
monitor.Device.MonitorName = nativeData.Monitor;
monitor.Device.MonitorInstanceId = nativeData.MonitorInstanceId;
monitor.Device.MonitorSerialNumber = nativeData.MonitorSerialNumber;
monitor.Device.MonitorNumber = nativeData.MonitorNumber;
monitor.Device.VirtualDesktopId = nativeData.VirtualDesktop;
App.Overlay.AddMonitor(monitor);
@@ -571,6 +580,7 @@ namespace FancyZonesEditor.Utils
{
Monitor = monitor.Device.MonitorName,
MonitorInstance = monitor.Device.MonitorInstanceId,
MonitorNumber = monitor.Device.MonitorNumber,
SerialNumber = monitor.Device.MonitorSerialNumber,
VirtualDesktop = monitor.Device.VirtualDesktopId,
},
@@ -838,6 +848,7 @@ namespace FancyZonesEditor.Utils
{
if (monitor.Device.MonitorName == layout.Device.Monitor &&
monitor.Device.MonitorSerialNumber == layout.Device.SerialNumber &&
monitor.Device.MonitorNumber == layout.Device.MonitorNumber &&
(monitor.Device.VirtualDesktopId == layout.Device.VirtualDesktop ||
layout.Device.VirtualDesktop == DefaultVirtualDesktopGuid))
{