X-Git-Url: https://git.reactos.org/?p=reactos.git;a=blobdiff_plain;f=base%2Fshell%2Fexplorer-new%2Ftraywnd.c;h=b806c5dd4909b87de57477b92f484547d33d51cf;hp=a887319b4f84cacefa74993e66d4b51c2bf72bca;hb=1724ea64fb43c8cfee7cc6601507aab329694b66;hpb=c82da59af8ac70808e499ef7f254cc7fa8a368be diff --git a/base/shell/explorer-new/traywnd.c b/base/shell/explorer-new/traywnd.c index a887319b4f8..b806c5dd490 100644 --- a/base/shell/explorer-new/traywnd.c +++ b/base/shell/explorer-new/traywnd.c @@ -2550,9 +2550,19 @@ HandleTrayContextMenu: break; case TWM_OPENSTARTMENU: - SendMessage(This->hWnd, WM_COMMAND, MAKEWPARAM(BN_CLICKED, IDC_STARTBTN), (LPARAM)This->hwndStart); - break; + { + HWND hwndStartMenu; + HRESULT hr = IUnknown_GetWindow((IUnknown*)This->StartMenuPopup, &hwndStartMenu); + if (FAILED(hr)) + break; + + if (IsWindowVisible(hwndStartMenu)) + SetWindowPos(hwndStartMenu, 0,0,0,0,0, SWP_HIDEWINDOW | SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOZORDER); + else + SendMessage(This->hWnd, WM_COMMAND, MAKEWPARAM(BN_CLICKED, IDC_STARTBTN), (LPARAM)This->hwndStart); + break; + } case WM_COMMAND: if ((HWND)lParam == This->hwndStart) { @@ -2603,6 +2613,10 @@ HandleTrayContextMenu: { /* FIXME: Handle these commands as well */ case IDM_TASKBARANDSTARTMENU: + + ITrayWindowImpl_DisplayProperties(ITrayWindow_from_impl(This)); + break; + case IDM_SEARCH: case IDM_HELPANDSUPPORT: break;