Index: base/shell/explorer/traywnd.cpp =================================================================== --- base/shell/explorer/traywnd.cpp (revision 74930) +++ base/shell/explorer/traywnd.cpp (working copy) @@ -62,7 +62,7 @@ const GUID IID_IShellDesktopTray = { 0x213e2df9, 0x9a14, 0x4328, { 0x99, 0xb1, 0x69, 0x61, 0xf9, 0x14, 0x3c, 0xe9 } }; class CStartButton - : public CWindow + : public CWindowImpl { HIMAGELIST m_ImageList; SIZE m_Size; @@ -125,6 +125,7 @@ VOID Initialize() { + SubclassWindow(m_hWnd); SetWindowTheme(m_hWnd, L"Start", NULL); m_ImageList = ImageList_LoadImageW(hExplorerInstance, @@ -167,6 +168,18 @@ return m_hWnd; } + + LRESULT OnLButtonDown(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled) + { + GetParent().PostMessage(TWM_OPENSTARTMENU); + return 0; + } + + + BEGIN_MSG_MAP(CStartButton) + MESSAGE_HANDLER(WM_LBUTTONDOWN, OnLButtonDown) + END_MSG_MAP() + }; class CTrayWindow : @@ -2696,7 +2709,6 @@ if ((HWND) lParam == m_StartButton.m_hWnd) { - PopupStartMenu(); return FALSE; }