diff --git a/base/shell/explorer/taskswnd.cpp b/base/shell/explorer/taskswnd.cpp index 0a5d4db..deeb50f 100644 --- a/base/shell/explorer/taskswnd.cpp +++ b/base/shell/explorer/taskswnd.cpp @@ -1633,6 +1633,13 @@ public: ActivateTask(TaskItem->hWnd); + /* Wait up to 2 seconds for the window to process the foreground notification. */ + DWORD_PTR resultDummy; + if (!SendMessageTimeout(TaskItem->hWnd, WM_NULL, 0, 0, 0, 2000, &resultDummy)) + ERR("HandleTaskItemRightClick detected the window was unresponsive for 2 seconds, or was destroyed\n"); + if (GetForegroundWindow() != TaskItem->hWnd) + ERR("HandleTaskItemRightClick detected the window did not become foreground\n"); + ::SendMessageW(TaskItem->hWnd, WM_POPUPSYSTEMMENU, 0, MAKELPARAM(pt.x, pt.y)); }