FZ: ignore projects launched windows

This commit is contained in:
seraphima
2024-07-10 19:03:36 +02:00
parent 06ecbd58b8
commit 2e2e47a039
4 changed files with 19 additions and 1 deletions

View File

@@ -1,6 +1,7 @@
#include "pch.h"
#include "FancyZonesWindowProcessing.h"
#include <FancyZonesLib/FancyZonesWindowProperties.h>
#include <FancyZonesLib/Settings.h>
#include <FancyZonesLib/VirtualDesktop.h>
#include <FancyZonesLib/WindowUtils.h>
@@ -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;
}

View File

@@ -13,7 +13,8 @@ namespace FancyZonesWindowProcessing
NonProcessablePopupWindow,
ChildWindow,
Excluded,
NotCurrentVirtualDesktop
NotCurrentVirtualDesktop,
LaunchedByProjects
};
ProcessabilityType DefineWindowType(HWND window) noexcept;

View File

@@ -6,6 +6,8 @@
#include <common/logger/logger.h>
#include <common/utils/winapi_error.h>
#include <modules/Projects/WindowProperties/ProjectsWindowPropertyUtils.h>
// 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;
}

View File

@@ -27,5 +27,7 @@ namespace FancyZonesWindowProperties
std::optional<size_t> GetTabSortKeyWithinZone(HWND window);
void SetTabSortKeyWithinZone(HWND window, std::optional<size_t> tabSortKeyWithinZone);
bool RetrieveFilteringProperties(HWND window);
}