[FancyZones]Fix moving windows on other virtual desktops (#29059)

* clean up obsolete vd check

* clean up

* replace virtual desktop id usage

* check current vd
This commit is contained in:
Seraphima Zykova
2023-10-23 16:13:24 +02:00
committed by GitHub
parent 812b343776
commit 78a94aecb9
4 changed files with 25 additions and 166 deletions

View File

@@ -5,29 +5,19 @@ class VirtualDesktop
public:
static VirtualDesktop& instance();
// saved values
GUID GetCurrentVirtualDesktopId() const noexcept;
void UpdateVirtualDesktopId() noexcept;
// IVirtualDesktopManager
bool IsWindowOnCurrentDesktop(HWND window) const;
std::optional<GUID> GetDesktopId(HWND window) const;
std::optional<GUID> GetDesktopIdByTopLevelWindows() const;
std::vector<std::pair<HWND, GUID>> GetWindowsRelatedToDesktops() const;
std::vector<HWND> GetWindowsFromCurrentDesktop() const;
// registry
std::optional<GUID> GetCurrentVirtualDesktopIdFromRegistry() const;
GUID GetCurrentVirtualDesktopIdFromRegistry() const;
std::optional<std::vector<GUID>> GetVirtualDesktopIdsFromRegistry() const;
bool IsVirtualDesktopIdSavedInRegistry(GUID id) const;
private:
VirtualDesktop();
~VirtualDesktop();
IVirtualDesktopManager* m_vdManager{nullptr};
GUID m_currentVirtualDesktopId{};
std::optional<std::vector<GUID>> GetVirtualDesktopIdsFromRegistry(HKEY hKey) const;
};