mirror of
https://github.com/microsoft/PowerToys.git
synced 2026-04-09 20:57:22 +02:00
FZ: fix nullptr crash
This commit is contained in:
committed by
Andrey Nekrasov
parent
e5f2810212
commit
8ca0c35242
@@ -1180,21 +1180,24 @@ bool FancyZones::OnSnapHotkeyBasedOnPosition(HWND window, DWORD vkCode) noexcept
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
auto workArea = m_workAreaHandler.GetWorkArea(m_currentDesktopId, monitor);
|
auto workArea = m_workAreaHandler.GetWorkArea(m_currentDesktopId, monitor);
|
||||||
auto zoneSet = workArea->ActiveZoneSet();
|
if (workArea)
|
||||||
if (zoneSet)
|
|
||||||
{
|
{
|
||||||
const auto zones = zoneSet->GetZones();
|
auto zoneSet = workArea->ActiveZoneSet();
|
||||||
for (const auto& [zoneId, zone] : zones)
|
if (zoneSet)
|
||||||
{
|
{
|
||||||
RECT zoneRect = zone->GetZoneRect();
|
const auto zones = zoneSet->GetZones();
|
||||||
|
for (const auto& [zoneId, zone] : zones)
|
||||||
|
{
|
||||||
|
RECT zoneRect = zone->GetZoneRect();
|
||||||
|
|
||||||
zoneRect.left += monitorRect.left;
|
zoneRect.left += monitorRect.left;
|
||||||
zoneRect.right += monitorRect.left;
|
zoneRect.right += monitorRect.left;
|
||||||
zoneRect.top += monitorRect.top;
|
zoneRect.top += monitorRect.top;
|
||||||
zoneRect.bottom += monitorRect.top;
|
zoneRect.bottom += monitorRect.top;
|
||||||
|
|
||||||
zoneRects.emplace_back(zoneRect);
|
zoneRects.emplace_back(zoneRect);
|
||||||
zoneRectsInfo.emplace_back(zoneId, workArea);
|
zoneRectsInfo.emplace_back(zoneId, workArea);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1224,21 +1227,24 @@ bool FancyZones::OnSnapHotkeyBasedOnPosition(HWND window, DWORD vkCode) noexcept
|
|||||||
if (currentMonitorRect.top <= currentMonitorRect.bottom)
|
if (currentMonitorRect.top <= currentMonitorRect.bottom)
|
||||||
{
|
{
|
||||||
auto workArea = m_workAreaHandler.GetWorkArea(m_currentDesktopId, current);
|
auto workArea = m_workAreaHandler.GetWorkArea(m_currentDesktopId, current);
|
||||||
auto zoneSet = workArea->ActiveZoneSet();
|
if (workArea)
|
||||||
if (zoneSet)
|
|
||||||
{
|
{
|
||||||
const auto zones = zoneSet->GetZones();
|
auto zoneSet = workArea->ActiveZoneSet();
|
||||||
for (const auto& [zoneId, zone] : zones)
|
if (zoneSet)
|
||||||
{
|
{
|
||||||
RECT zoneRect = zone->GetZoneRect();
|
const auto zones = zoneSet->GetZones();
|
||||||
|
for (const auto& [zoneId, zone] : zones)
|
||||||
|
{
|
||||||
|
RECT zoneRect = zone->GetZoneRect();
|
||||||
|
|
||||||
zoneRect.left += currentMonitorRect.left;
|
zoneRect.left += currentMonitorRect.left;
|
||||||
zoneRect.right += currentMonitorRect.left;
|
zoneRect.right += currentMonitorRect.left;
|
||||||
zoneRect.top += currentMonitorRect.top;
|
zoneRect.top += currentMonitorRect.top;
|
||||||
zoneRect.bottom += currentMonitorRect.top;
|
zoneRect.bottom += currentMonitorRect.top;
|
||||||
|
|
||||||
zoneRects.emplace_back(zoneRect);
|
zoneRects.emplace_back(zoneRect);
|
||||||
zoneRectsInfo.emplace_back(zoneId, workArea);
|
zoneRectsInfo.emplace_back(zoneId, workArea);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1351,9 +1357,9 @@ bool FancyZones::ShouldProcessSnapHotkey(DWORD vkCode) noexcept
|
|||||||
{
|
{
|
||||||
monitor = MonitorFromWindow(GetForegroundWindow(), MONITOR_DEFAULTTONULL);
|
monitor = MonitorFromWindow(GetForegroundWindow(), MONITOR_DEFAULTTONULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
auto zoneWindow = m_workAreaHandler.GetWorkArea(m_currentDesktopId, monitor);
|
auto zoneWindow = m_workAreaHandler.GetWorkArea(m_currentDesktopId, monitor);
|
||||||
if (zoneWindow->ActiveZoneSet() != nullptr)
|
if (zoneWindow && zoneWindow->ActiveZoneSet() != nullptr)
|
||||||
{
|
{
|
||||||
if (vkCode == VK_UP || vkCode == VK_DOWN)
|
if (vkCode == VK_UP || vkCode == VK_DOWN)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user