mirror of
https://github.com/microsoft/PowerToys.git
synced 2026-02-23 19:49:43 +01:00
[FancyZones] Dismiss window from zone always (even on resize)
This commit is contained in:
@@ -61,6 +61,13 @@ WindowMoveHandler::WindowMoveHandler(const winrt::com_ptr<IFancyZonesSettings>&
|
||||
|
||||
void WindowMoveHandler::MoveSizeStart(HWND window, HMONITOR monitor, POINT const& ptScreen, const std::unordered_map<HMONITOR, winrt::com_ptr<IWorkArea>>& workAreaMap) noexcept
|
||||
{
|
||||
auto workArea = workAreaMap.find(monitor);
|
||||
if (workArea != end(workAreaMap))
|
||||
{
|
||||
const auto workAreaPtr = workArea->second;
|
||||
workAreaPtr->DismissWindow(window);
|
||||
}
|
||||
|
||||
if (!FancyZonesUtils::IsCandidateForZoning(window, m_settings->GetSettings()->excludedAppsArray) || WindowMoveHandlerUtils::IsCursorTypeIndicatingSizeEvent())
|
||||
{
|
||||
return;
|
||||
@@ -70,8 +77,7 @@ void WindowMoveHandler::MoveSizeStart(HWND window, HMONITOR monitor, POINT const
|
||||
m_draggedWindowInfo.isStandardWindow = FancyZonesUtils::IsStandardWindow(window);
|
||||
m_inDragging = true;
|
||||
|
||||
auto iter = workAreaMap.find(monitor);
|
||||
if (iter == end(workAreaMap))
|
||||
if (workArea == end(workAreaMap))
|
||||
{
|
||||
return;
|
||||
}
|
||||
@@ -94,7 +100,7 @@ void WindowMoveHandler::MoveSizeStart(HWND window, HMONITOR monitor, POINT const
|
||||
|
||||
if (m_dragEnabled)
|
||||
{
|
||||
m_draggedWindowWorkArea = iter->second;
|
||||
m_draggedWindowWorkArea = workArea->second;
|
||||
SetWindowTransparency(m_draggedWindow);
|
||||
m_draggedWindowWorkArea->MoveSizeEnter(m_draggedWindow);
|
||||
if (m_settings->GetSettings()->showZonesOnAllMonitors)
|
||||
@@ -123,13 +129,6 @@ void WindowMoveHandler::MoveSizeStart(HWND window, HMONITOR monitor, POINT const
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
auto workArea = workAreaMap.find(monitor);
|
||||
if (workArea != workAreaMap.end())
|
||||
{
|
||||
const auto workAreaPtr = workArea->second;
|
||||
workAreaPtr->DismissWindow(window);
|
||||
}
|
||||
}
|
||||
|
||||
void WindowMoveHandler::MoveSizeUpdate(HMONITOR monitor, POINT const& ptScreen, const std::unordered_map<HMONITOR, winrt::com_ptr<IWorkArea>>& workAreaMap) noexcept
|
||||
|
||||
Reference in New Issue
Block a user