mirror of
https://github.com/reactos/reactos.git
synced 2025-02-22 16:36:33 +00:00
[EXPLORER] Check IsHungAppWindow before minimizing (#7080)
Reduce system freezing on Win+D. Normal minimizing causes message transfer. If the window was hanging, then it fell into endless message loop. JIRA issue: CORE-19673
This commit is contained in:
parent
0cfd7bde9b
commit
92551f540c
2 changed files with 4 additions and 2 deletions
|
@ -1601,7 +1601,8 @@ public:
|
||||||
|
|
||||||
if (!bIsMinimized && bIsActive)
|
if (!bIsMinimized && bIsActive)
|
||||||
{
|
{
|
||||||
::ShowWindowAsync(TaskItem->hWnd, SW_MINIMIZE);
|
if (!::IsHungAppWindow(TaskItem->hWnd))
|
||||||
|
::ShowWindowAsync(TaskItem->hWnd, SW_MINIMIZE);
|
||||||
TRACE("Valid button clicked. App window Minimized.\n");
|
TRACE("Valid button clicked. App window Minimized.\n");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -101,7 +101,8 @@ VOID RestoreWindowPos()
|
||||||
|
|
||||||
BOOL CanBeMinimized(HWND hwnd)
|
BOOL CanBeMinimized(HWND hwnd)
|
||||||
{
|
{
|
||||||
if (::IsWindowVisible(hwnd) && !::IsIconic(hwnd) && ::IsWindowEnabled(hwnd))
|
if (::IsWindowVisible(hwnd) && !::IsIconic(hwnd) && ::IsWindowEnabled(hwnd) &&
|
||||||
|
!::IsHungAppWindow(hwnd))
|
||||||
{
|
{
|
||||||
if (::GetClassLongPtrW(hwnd, GCW_ATOM) == (ULONG_PTR)WC_DIALOG)
|
if (::GetClassLongPtrW(hwnd, GCW_ATOM) == (ULONG_PTR)WC_DIALOG)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
Loading…
Reference in a new issue