diff --git a/src/modules/fancyzones/FancyZonesLib/FancyZones.cpp b/src/modules/fancyzones/FancyZonesLib/FancyZones.cpp index 960f797f72..f708a2d4f8 100644 --- a/src/modules/fancyzones/FancyZonesLib/FancyZones.cpp +++ b/src/modules/fancyzones/FancyZonesLib/FancyZones.cpp @@ -394,6 +394,15 @@ void FancyZones::WindowCreated(HWND window) noexcept return; } + // Hotfix + // Avoid automatically moving popup windows, as they can be just popup menus. + bool isPopup = FancyZonesWindowUtils::IsPopupWindow(window); + bool hasThickFrame = FancyZonesWindowUtils::HasThickFrame(window); + if (isPopup && !hasThickFrame) + { + return; + } + // Avoid already stamped (zoned) windows const bool isZoned = !FancyZonesWindowProperties::RetrieveZoneIndexProperty(window).empty(); if (isZoned) diff --git a/src/modules/fancyzones/FancyZonesLib/FancyZonesWindowProcessing.cpp b/src/modules/fancyzones/FancyZonesLib/FancyZonesWindowProcessing.cpp index 5a0c2eda53..102392ba91 100644 --- a/src/modules/fancyzones/FancyZonesLib/FancyZonesWindowProcessing.cpp +++ b/src/modules/fancyzones/FancyZonesLib/FancyZonesWindowProcessing.cpp @@ -27,9 +27,8 @@ bool FancyZonesWindowProcessing::IsProcessable(HWND window) noexcept // popup could be the window we don't want to snap: start menu, notification popup, tray window, etc. // also, popup could be the windows we want to snap disregarding the "allowSnapPopupWindows" setting, e.g. Telegram - bool isPopup = FancyZonesWindowUtils::IsPopupWindow(window); - bool hasThickFrame = FancyZonesWindowUtils::HasThickFrame(window); - if (isPopup && (!hasThickFrame || !FancyZonesSettings::settings().allowSnapPopupWindows)) + bool isPopup = FancyZonesWindowUtils::IsPopupWindow(window) && !FancyZonesWindowUtils::HasThickFrameAndMinimizeMaximizeButtons(window); + if (isPopup && !FancyZonesSettings::settings().allowSnapPopupWindows) { return false; }