From 0ecfbfad53a79b9ac287a2cad3b7a1fe22e5a468 Mon Sep 17 00:00:00 2001 From: Bartosz Sosnowski Date: Wed, 5 Feb 2020 12:31:35 +0100 Subject: [PATCH] FancyZones: filter out WM_POPUP windows if they dont have maximize/minimize button or a sizable frame (#1212) This filters out TaskView and Win32 menus. --- src/common/hwnd_data_cache.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/common/hwnd_data_cache.cpp b/src/common/hwnd_data_cache.cpp index fffb1f67e0..38f52aea25 100644 --- a/src/common/hwnd_data_cache.cpp +++ b/src/common/hwnd_data_cache.cpp @@ -80,6 +80,14 @@ bool HWNDDataCache::is_invalid_class(HWND hwnd) const { } bool HWNDDataCache::is_invalid_style(HWND hwnd) const { auto style = GetWindowLong(hwnd, GWL_STYLE); + // WS_POPUP need to have a border or minimize/maximize buttons, + // otherwise the window is "not interesting" + if ((style & WS_POPUP) == WS_POPUP && + (style & WS_THICKFRAME) == 0 && + (style & WS_MINIMIZEBOX) == 0 && + (style & WS_MAXIMIZEBOX) == 0) { + return true; + } for (auto invalid : invalid_basic_styles) { if ((invalid & style) != 0) { return true;