From 2e2e47a0398d910a5f3ed2f9d7d7114c68e183c5 Mon Sep 17 00:00:00 2001 From: seraphima Date: Wed, 10 Jul 2024 19:03:36 +0200 Subject: [PATCH] FZ: ignore projects launched windows --- .../FancyZonesLib/FancyZonesWindowProcessing.cpp | 7 +++++++ .../fancyzones/FancyZonesLib/FancyZonesWindowProcessing.h | 3 ++- .../FancyZonesLib/FancyZonesWindowProperties.cpp | 8 ++++++++ .../fancyzones/FancyZonesLib/FancyZonesWindowProperties.h | 2 ++ 4 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/modules/fancyzones/FancyZonesLib/FancyZonesWindowProcessing.cpp b/src/modules/fancyzones/FancyZonesLib/FancyZonesWindowProcessing.cpp index 3fc9c4e09d..9c4c5ab4c9 100644 --- a/src/modules/fancyzones/FancyZonesLib/FancyZonesWindowProcessing.cpp +++ b/src/modules/fancyzones/FancyZonesLib/FancyZonesWindowProcessing.cpp @@ -1,6 +1,7 @@ #include "pch.h" #include "FancyZonesWindowProcessing.h" +#include #include #include #include @@ -64,6 +65,12 @@ FancyZonesWindowProcessing::ProcessabilityType FancyZonesWindowProcessing::Defin return ProcessabilityType::NotCurrentVirtualDesktop; } + // Ignore windows launched by Projects + if (FancyZonesWindowProperties::RetrieveFilteringProperties(window)) + { + return ProcessabilityType::LaunchedByProjects; + } + return ProcessabilityType::Processable; } diff --git a/src/modules/fancyzones/FancyZonesLib/FancyZonesWindowProcessing.h b/src/modules/fancyzones/FancyZonesLib/FancyZonesWindowProcessing.h index e6a16b9fe4..91ca096a35 100644 --- a/src/modules/fancyzones/FancyZonesLib/FancyZonesWindowProcessing.h +++ b/src/modules/fancyzones/FancyZonesLib/FancyZonesWindowProcessing.h @@ -13,7 +13,8 @@ namespace FancyZonesWindowProcessing NonProcessablePopupWindow, ChildWindow, Excluded, - NotCurrentVirtualDesktop + NotCurrentVirtualDesktop, + LaunchedByProjects }; ProcessabilityType DefineWindowType(HWND window) noexcept; diff --git a/src/modules/fancyzones/FancyZonesLib/FancyZonesWindowProperties.cpp b/src/modules/fancyzones/FancyZonesLib/FancyZonesWindowProperties.cpp index 306b4ccab0..e3db1f0ad0 100644 --- a/src/modules/fancyzones/FancyZonesLib/FancyZonesWindowProperties.cpp +++ b/src/modules/fancyzones/FancyZonesLib/FancyZonesWindowProperties.cpp @@ -6,6 +6,8 @@ #include #include +#include + // Zoned window properties are not localized. namespace ZonedWindowProperties { @@ -122,3 +124,9 @@ void FancyZonesWindowProperties::SetTabSortKeyWithinZone(HWND window, std::optio ::SetPropW(window, ZonedWindowProperties::PropertySortKeyWithinZone, rawTabSortKeyWithinZone); } } + +bool FancyZonesWindowProperties::RetrieveFilteringProperties(HWND window) +{ + HANDLE handle = ::GetProp(window, ProjectsWindowProperties::Properties::LaunchedByProjectsID); + return handle != nullptr; +} diff --git a/src/modules/fancyzones/FancyZonesLib/FancyZonesWindowProperties.h b/src/modules/fancyzones/FancyZonesLib/FancyZonesWindowProperties.h index 0bd8ff16bf..df33c2ca13 100644 --- a/src/modules/fancyzones/FancyZonesLib/FancyZonesWindowProperties.h +++ b/src/modules/fancyzones/FancyZonesLib/FancyZonesWindowProperties.h @@ -27,5 +27,7 @@ namespace FancyZonesWindowProperties std::optional GetTabSortKeyWithinZone(HWND window); void SetTabSortKeyWithinZone(HWND window, std::optional tabSortKeyWithinZone); + + bool RetrieveFilteringProperties(HWND window); }