diff --git a/base/shell/explorer/taskswnd.cpp b/base/shell/explorer/taskswnd.cpp index f52242e947d..9c800b29511 100644 --- a/base/shell/explorer/taskswnd.cpp +++ b/base/shell/explorer/taskswnd.cpp @@ -1601,7 +1601,8 @@ public: 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"); } else diff --git a/base/shell/explorer/traywnd.cpp b/base/shell/explorer/traywnd.cpp index 25de8857d30..ac9b6bab0fa 100644 --- a/base/shell/explorer/traywnd.cpp +++ b/base/shell/explorer/traywnd.cpp @@ -101,7 +101,8 @@ VOID RestoreWindowPos() 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) return TRUE;