From 3cf6685eeb5ce5a2cd728e26f89b7b02670b79ad Mon Sep 17 00:00:00 2001 From: Seraphima Zykova Date: Mon, 30 May 2022 12:16:33 +0200 Subject: [PATCH] [FancyZones]Fix not shown layout on window dragging(#18542) * log * check if current vd id null --- .../fancyzones/FancyZonesLib/FancyZonesWindowProcessing.h | 8 +++++++- src/modules/fancyzones/FancyZonesLib/WorkArea.cpp | 1 + 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/modules/fancyzones/FancyZonesLib/FancyZonesWindowProcessing.h b/src/modules/fancyzones/FancyZonesLib/FancyZonesWindowProcessing.h index fcb434868e..213c5c28d7 100644 --- a/src/modules/fancyzones/FancyZonesLib/FancyZonesWindowProcessing.h +++ b/src/modules/fancyzones/FancyZonesLib/FancyZonesWindowProcessing.h @@ -24,7 +24,13 @@ namespace FancyZonesWindowProcessing // For windows that FancyZones shouldn't process (start menu, tray, popup menus) // VirtualDesktopManager is unable to retrieve virtual desktop id and returns an error. auto desktopId = VirtualDesktop::instance().GetDesktopId(window); - if (!desktopId.has_value() || (desktopId.has_value() && *desktopId != VirtualDesktop::instance().GetCurrentVirtualDesktopId())) + auto currentDesktopId = VirtualDesktop::instance().GetCurrentVirtualDesktopId(); + if (!desktopId.has_value()) + { + return false; + } + + if (currentDesktopId != GUID_NULL && desktopId.value() != currentDesktopId) { return false; } diff --git a/src/modules/fancyzones/FancyZonesLib/WorkArea.cpp b/src/modules/fancyzones/FancyZonesLib/WorkArea.cpp index ca14e7d079..ce500b5ec4 100644 --- a/src/modules/fancyzones/FancyZonesLib/WorkArea.cpp +++ b/src/modules/fancyzones/FancyZonesLib/WorkArea.cpp @@ -502,6 +502,7 @@ void WorkArea::CalculateZoneSet(OverlappingZonesAlgorithm overlappingAlgorithm) const auto appliedLayout = AppliedLayouts::instance().GetDeviceLayout(m_uniqueId); if (!appliedLayout.has_value()) { + Logger::error(L"Layout wasn't applied. Can't init zone set"); return; }