From 5a36651217ffb03fdabb936483c4bec1e6153d06 Mon Sep 17 00:00:00 2001 From: vldmr11080 z Date: Mon, 17 Feb 2020 21:23:42 +0100 Subject: [PATCH] Remove resolution from unique identifier --- src/modules/fancyzones/lib/FancyZones.cpp | 2 +- src/modules/fancyzones/lib/ZoneWindow.cpp | 10 +++------- src/modules/fancyzones/lib/ZoneWindow.h | 2 +- .../fancyzones/tests/UnitTests/ZoneWindow.Spec.cpp | 7 +++---- 4 files changed, 8 insertions(+), 13 deletions(-) diff --git a/src/modules/fancyzones/lib/FancyZones.cpp b/src/modules/fancyzones/lib/FancyZones.cpp index da6a16d505..06c8fc2dd5 100644 --- a/src/modules/fancyzones/lib/FancyZones.cpp +++ b/src/modules/fancyzones/lib/FancyZones.cpp @@ -613,7 +613,7 @@ void FancyZones::AddZoneWindow(HMONITOR monitor, PCWSTR deviceId) noexcept wil::unique_cotaskmem_string virtualDesktopId; if (SUCCEEDED_LOG(StringFromCLSID(m_currentVirtualDesktopId, &virtualDesktopId))) { - std::wstring uniqueId = ZoneWindowUtils::GenerateUniqueId(monitor, deviceId, virtualDesktopId.get()); + std::wstring uniqueId = ZoneWindowUtils::GenerateUniqueId(deviceId, virtualDesktopId.get()); JSONHelpers::FancyZonesDataInstance().SetActiveDeviceId(uniqueId); const bool newWorkArea = IsNewWorkArea(m_currentVirtualDesktopId, monitor); diff --git a/src/modules/fancyzones/lib/ZoneWindow.cpp b/src/modules/fancyzones/lib/ZoneWindow.cpp index a70ffc5dfa..da4d00aaad 100644 --- a/src/modules/fancyzones/lib/ZoneWindow.cpp +++ b/src/modules/fancyzones/lib/ZoneWindow.cpp @@ -63,19 +63,15 @@ namespace ZoneWindowUtils return customZoneSetsTmpFileName; } - std::wstring GenerateUniqueId(HMONITOR monitor, PCWSTR deviceId, PCWSTR virtualDesktopId) + std::wstring GenerateUniqueId(PCWSTR deviceId, PCWSTR virtualDesktopId) { wchar_t uniqueId[256]{}; // Parsed deviceId + resolution + virtualDesktopId - MONITORINFOEXW mi; - mi.cbSize = sizeof(mi); - if (virtualDesktopId && GetMonitorInfo(monitor, &mi)) + if (virtualDesktopId) { wchar_t parsedId[256]{}; ParseDeviceId(deviceId, parsedId, 256); - - Rect const monitorRect(mi.rcMonitor); - StringCchPrintf(uniqueId, ARRAYSIZE(uniqueId), L"%s_%d_%d_%s", parsedId, monitorRect.width(), monitorRect.height(), virtualDesktopId); + StringCchPrintf(uniqueId, ARRAYSIZE(uniqueId), L"%s_%s", parsedId, virtualDesktopId); } return std::wstring{ uniqueId }; } diff --git a/src/modules/fancyzones/lib/ZoneWindow.h b/src/modules/fancyzones/lib/ZoneWindow.h index 93a195ae65..69dff4b6d2 100644 --- a/src/modules/fancyzones/lib/ZoneWindow.h +++ b/src/modules/fancyzones/lib/ZoneWindow.h @@ -7,7 +7,7 @@ namespace ZoneWindowUtils const std::wstring& GetActiveZoneSetTmpPath(); const std::wstring& GetAppliedZoneSetTmpPath(); const std::wstring& GetCustomZoneSetsTmpPath(); - std::wstring GenerateUniqueId(HMONITOR monitor, PCWSTR deviceId, PCWSTR virtualDesktopId); + std::wstring GenerateUniqueId(PCWSTR deviceId, PCWSTR virtualDesktopId); } interface __declspec(uuid("{7F017528-8110-4FB3-BE41-F472969C2560}")) IZoneWindow : public IUnknown diff --git a/src/modules/fancyzones/tests/UnitTests/ZoneWindow.Spec.cpp b/src/modules/fancyzones/tests/UnitTests/ZoneWindow.Spec.cpp index 8a5418bede..909892b7e6 100644 --- a/src/modules/fancyzones/tests/UnitTests/ZoneWindow.Spec.cpp +++ b/src/modules/fancyzones/tests/UnitTests/ZoneWindow.Spec.cpp @@ -173,11 +173,11 @@ namespace FancyZonesUnitTests TEST_METHOD(CreateZoneWindowNoDeviceId) { // Generate unique id without device id - std::wstring uniqueId = ZoneWindowUtils::GenerateUniqueId(m_monitor, nullptr, m_virtualDesktopId.c_str()); + std::wstring uniqueId = ZoneWindowUtils::GenerateUniqueId(nullptr, m_virtualDesktopId.c_str()); m_zoneWindow = MakeZoneWindow(m_hostPtr, m_hInst, m_monitor, uniqueId, false); const std::wstring expectedWorkArea = std::to_wstring(m_monitorInfo.rcMonitor.right) + L"_" + std::to_wstring(m_monitorInfo.rcMonitor.bottom); - const std::wstring expectedUniqueId = L"FallbackDevice_" + std::to_wstring(m_monitorInfo.rcMonitor.right) + L"_" + std::to_wstring(m_monitorInfo.rcMonitor.bottom) + L"_" + m_virtualDesktopId; + const std::wstring expectedUniqueId = L"FallbackDevice_" + m_virtualDesktopId; Assert::IsNotNull(m_zoneWindow.get()); Assert::IsFalse(m_zoneWindow->IsDragEnabled()); @@ -189,10 +189,9 @@ namespace FancyZonesUnitTests TEST_METHOD(CreateZoneWindowNoDesktopId) { // Generate unique id without virtual desktop id - std::wstring uniqueId = ZoneWindowUtils::GenerateUniqueId(m_monitor, m_deviceId.c_str(), nullptr); + std::wstring uniqueId = ZoneWindowUtils::GenerateUniqueId(m_deviceId.c_str(), nullptr); m_zoneWindow = MakeZoneWindow(m_hostPtr, m_hInst, m_monitor, uniqueId, false); - const std::wstring expectedWorkArea = std::to_wstring(m_monitorInfo.rcMonitor.right) + L"_" + std::to_wstring(m_monitorInfo.rcMonitor.bottom); Assert::IsNotNull(m_zoneWindow.get()); Assert::IsFalse(m_zoneWindow->IsDragEnabled()); Assert::IsTrue(m_zoneWindow->UniqueId().empty());