mirror of
https://github.com/microsoft/PowerToys.git
synced 2026-04-05 10:46:33 +02:00
[FancyZones] Clean up resources taken by closed virtual desktops on module startup (#2616)
* Clean up resources taken by closed virtual desktops on FancyZones module startup. * Overload GetVirtualDesktopIds to return wide string. * Refactor OnDisplayChange method.
This commit is contained in:
@@ -87,7 +87,7 @@ namespace VirtualDesktopUtils
|
||||
// desktops (only primary desktop) in this session value in registry will be empty.
|
||||
// If this value is empty take first element from array of virtual desktops (not kept per session).
|
||||
std::vector<GUID> ids{};
|
||||
if (!GetVirtualDekstopIds(ids) || ids.empty())
|
||||
if (!GetVirtualDesktopIds(ids) || ids.empty())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
@@ -96,7 +96,7 @@ namespace VirtualDesktopUtils
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GetVirtualDekstopIds(HKEY hKey, std::vector<GUID>& ids)
|
||||
bool GetVirtualDesktopIds(HKEY hKey, std::vector<GUID>& ids)
|
||||
{
|
||||
if (!hKey)
|
||||
{
|
||||
@@ -126,9 +126,27 @@ namespace VirtualDesktopUtils
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GetVirtualDekstopIds(std::vector<GUID>& ids)
|
||||
bool GetVirtualDesktopIds(std::vector<GUID>& ids)
|
||||
{
|
||||
return GetVirtualDekstopIds(GetVirtualDesktopsRegKey(), ids);
|
||||
return GetVirtualDesktopIds(GetVirtualDesktopsRegKey(), ids);
|
||||
}
|
||||
|
||||
bool GetVirtualDesktopIds(std::vector<std::wstring>& ids)
|
||||
{
|
||||
std::vector<GUID> guids{};
|
||||
if (GetVirtualDesktopIds(guids))
|
||||
{
|
||||
for (auto& guid : guids)
|
||||
{
|
||||
wil::unique_cotaskmem_string guidString;
|
||||
if (SUCCEEDED(StringFromCLSID(guid, &guidString)))
|
||||
{
|
||||
ids.push_back(guidString.get());
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
HKEY OpenVirtualDesktopsRegKey()
|
||||
|
||||
Reference in New Issue
Block a user