mirror of
https://github.com/microsoft/PowerToys.git
synced 2026-04-04 02:06:36 +02:00
[FancyZones] Feature to create zone layouts spanning multiple monitors (#5289)
* Added the setting * Added a property to Editor Settings This will be used later * Fixed a bug in the previous commit * Simplified a method * Added snapping points to the editor * Simplified a method in ZoneSet * Updated ZoneSet testcases * Add a method to FancyZones / ZoneWindowHost * Almost works * The editor now launches, but FZ does not understand the results * Refactored some code * Snapping to a zone by dragging seems to work * Hotkeys seem to work * Refresh the work area handler after changing settings * Fixed zones not snapping to monitor edges when moved * Remove unused method in FancyZones.h * Fixed an issue with DPI awareness * Renamed setting to spanZonesAcrossMonitors * Renamed a function * Fixed a bug with the magnetic effect * Fix restoring window positions on layout changes
This commit is contained in:
@@ -791,7 +791,7 @@ namespace FancyZonesUnitTests
|
||||
for (const auto& monitorInfo : m_popularMonitors)
|
||||
{
|
||||
auto set = MakeZoneSet(m_config);
|
||||
auto result = set->CalculateZones(monitorInfo, zoneCount, spacing);
|
||||
auto result = set->CalculateZones(monitorInfo.rcWork, zoneCount, spacing);
|
||||
Assert::IsTrue(result);
|
||||
checkZones(set, zoneCount, monitorInfo);
|
||||
}
|
||||
@@ -808,7 +808,7 @@ namespace FancyZonesUnitTests
|
||||
auto set = MakeZoneSet(m_config);
|
||||
|
||||
MONITORINFO info{};
|
||||
auto result = set->CalculateZones(info, zoneCount, spacing);
|
||||
auto result = set->CalculateZones(info.rcWork, zoneCount, spacing);
|
||||
Assert::IsFalse(result);
|
||||
}
|
||||
}
|
||||
@@ -825,7 +825,7 @@ namespace FancyZonesUnitTests
|
||||
for (const auto& monitorInfo : m_popularMonitors)
|
||||
{
|
||||
auto set = MakeZoneSet(m_config);
|
||||
auto result = set->CalculateZones(monitorInfo, zoneCount, spacing);
|
||||
auto result = set->CalculateZones(monitorInfo.rcWork, zoneCount, spacing);
|
||||
Assert::IsTrue(result);
|
||||
checkZones(set, zoneCount, monitorInfo);
|
||||
}
|
||||
@@ -844,7 +844,7 @@ namespace FancyZonesUnitTests
|
||||
|
||||
for (const auto& monitorInfo : m_popularMonitors)
|
||||
{
|
||||
auto result = set->CalculateZones(monitorInfo, zoneCount, spacing);
|
||||
auto result = set->CalculateZones(monitorInfo.rcWork, zoneCount, spacing);
|
||||
if (type == static_cast<int>(ZoneSetLayoutType::Focus))
|
||||
{
|
||||
//Focus doesn't depends on spacing
|
||||
@@ -870,7 +870,7 @@ namespace FancyZonesUnitTests
|
||||
for (const auto& monitorInfo : m_popularMonitors)
|
||||
{
|
||||
const int spacing = monitorInfo.rcWork.right;
|
||||
auto result = set->CalculateZones(monitorInfo, zoneCount, spacing);
|
||||
auto result = set->CalculateZones(monitorInfo.rcWork, zoneCount, spacing);
|
||||
if (type == static_cast<int>(ZoneSetLayoutType::Focus))
|
||||
{
|
||||
//Focus doesn't depends on spacing
|
||||
@@ -896,7 +896,7 @@ namespace FancyZonesUnitTests
|
||||
for (const auto& monitorInfo : m_popularMonitors)
|
||||
{
|
||||
const int spacing = monitorInfo.rcWork.bottom;
|
||||
auto result = set->CalculateZones(monitorInfo, zoneCount, spacing);
|
||||
auto result = set->CalculateZones(monitorInfo.rcWork, zoneCount, spacing);
|
||||
if (type == static_cast<int>(ZoneSetLayoutType::Focus))
|
||||
{
|
||||
//Focus doesn't depends on spacing
|
||||
@@ -922,7 +922,7 @@ namespace FancyZonesUnitTests
|
||||
|
||||
for (const auto& monitorInfo : m_popularMonitors)
|
||||
{
|
||||
auto result = set->CalculateZones(monitorInfo, zoneCount, spacing);
|
||||
auto result = set->CalculateZones(monitorInfo.rcWork, zoneCount, spacing);
|
||||
Assert::IsFalse(result);
|
||||
}
|
||||
}
|
||||
@@ -942,7 +942,7 @@ namespace FancyZonesUnitTests
|
||||
for (const auto& monitorInfo : m_popularMonitors)
|
||||
{
|
||||
auto set = MakeZoneSet(m_config);
|
||||
auto result = set->CalculateZones(monitorInfo, zoneCount, spacing);
|
||||
auto result = set->CalculateZones(monitorInfo.rcWork, zoneCount, spacing);
|
||||
Assert::IsTrue(result);
|
||||
checkZones(set, zoneCount, monitorInfo);
|
||||
}
|
||||
@@ -965,7 +965,7 @@ namespace FancyZonesUnitTests
|
||||
|
||||
for (const auto& monitorInfo : m_popularMonitors)
|
||||
{
|
||||
auto result = set->CalculateZones(monitorInfo, zoneCount, spacing);
|
||||
auto result = set->CalculateZones(monitorInfo.rcWork, zoneCount, spacing);
|
||||
Assert::IsFalse(result);
|
||||
}
|
||||
}
|
||||
@@ -983,7 +983,7 @@ namespace FancyZonesUnitTests
|
||||
|
||||
for (const auto& monitorInfo : m_popularMonitors)
|
||||
{
|
||||
auto result = set->CalculateZones(monitorInfo, zoneCount, spacing);
|
||||
auto result = set->CalculateZones(monitorInfo.rcWork, zoneCount, spacing);
|
||||
Assert::IsFalse(result);
|
||||
}
|
||||
}
|
||||
@@ -1004,7 +1004,7 @@ namespace FancyZonesUnitTests
|
||||
|
||||
for (const auto& monitorInfo : m_popularMonitors)
|
||||
{
|
||||
auto result = set->CalculateZones(monitorInfo, zoneCount, spacing);
|
||||
auto result = set->CalculateZones(monitorInfo.rcWork, zoneCount, spacing);
|
||||
Assert::IsFalse(result);
|
||||
}
|
||||
}
|
||||
@@ -1030,7 +1030,7 @@ namespace FancyZonesUnitTests
|
||||
|
||||
for (const auto& monitorInfo : m_popularMonitors)
|
||||
{
|
||||
auto result = set->CalculateZones(monitorInfo, zoneCount, spacing);
|
||||
auto result = set->CalculateZones(monitorInfo.rcWork, zoneCount, spacing);
|
||||
Assert::IsFalse(result);
|
||||
}
|
||||
}
|
||||
@@ -1064,7 +1064,7 @@ namespace FancyZonesUnitTests
|
||||
for (const auto& monitorInfo : m_popularMonitors)
|
||||
{
|
||||
auto set = MakeZoneSet(m_config);
|
||||
auto result = set->CalculateZones(monitorInfo, zoneCount, spacing);
|
||||
auto result = set->CalculateZones(monitorInfo.rcWork, zoneCount, spacing);
|
||||
Assert::IsTrue(result);
|
||||
checkZones(set, zoneCount, monitorInfo);
|
||||
}
|
||||
@@ -1105,7 +1105,7 @@ namespace FancyZonesUnitTests
|
||||
for (const auto& monitorInfo : m_popularMonitors)
|
||||
{
|
||||
auto set = MakeZoneSet(m_config);
|
||||
auto result = set->CalculateZones(monitorInfo, zoneCount, spacing);
|
||||
auto result = set->CalculateZones(monitorInfo.rcWork, zoneCount, spacing);
|
||||
Assert::IsTrue(result);
|
||||
checkZones(set, zoneCount, monitorInfo);
|
||||
}
|
||||
@@ -1129,7 +1129,7 @@ namespace FancyZonesUnitTests
|
||||
|
||||
for (const auto& monitorInfo : m_popularMonitors)
|
||||
{
|
||||
auto result = set->CalculateZones(monitorInfo, zoneCount, spacing);
|
||||
auto result = set->CalculateZones(monitorInfo.rcWork, zoneCount, spacing);
|
||||
Assert::IsFalse(result);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user