diff --git a/base/shell/rshell/CMenuBand.cpp b/base/shell/rshell/CMenuBand.cpp index 0ec21b78b41..7afd5f3aa0b 100644 --- a/base/shell/rshell/CMenuBand.cpp +++ b/base/shell/rshell/CMenuBand.cpp @@ -875,10 +875,8 @@ HRESULT CMenuBand::_MenuItemHotTrack(DWORD changeType) { if (m_hotBar && m_hotItem >= 0) { - // TODO: popup the current child if it has subitems, otherwise spread up. if (m_hotBar->HasSubMenu(m_hotItem)==S_OK) { - LRESULT result; m_hotBar->PopupItem(m_hotItem); return S_FALSE; } diff --git a/base/shell/rshell/CMenuToolbars.cpp b/base/shell/rshell/CMenuToolbars.cpp index da1b663a31f..030ea983521 100644 --- a/base/shell/rshell/CMenuToolbars.cpp +++ b/base/shell/rshell/CMenuToolbars.cpp @@ -64,6 +64,13 @@ HRESULT CMenuToolbarBase::ShowWindow(BOOL fShow) { ::ShowWindow(m_hwnd, fShow ? SW_SHOW : SW_HIDE); + UpdateImageLists(); + + return S_OK; +} + +HRESULT CMenuToolbarBase::UpdateImageLists() +{ int shiml; if (m_menuBand->UseBigIcons()) { @@ -85,7 +92,6 @@ HRESULT CMenuToolbarBase::ShowWindow(BOOL fShow) { SendMessageW(m_hwndToolbar, TB_SETIMAGELIST, 0, 0); } - return S_OK; } @@ -163,31 +169,12 @@ HRESULT CMenuToolbarBase::CreateToolbar(HWND hwndParent, DWORD dwFlags) // SendMessageW(m_hwnd, TB_SETIMAGELIST, 0, 0); //} //else - int shiml; - if (m_menuBand->UseBigIcons()) - { - shiml = SHIL_LARGE; - SendMessageW(hwndToolbar, TB_SETPADDING, 0, MAKELPARAM(0, 0)); - } - else - { - shiml = SHIL_SMALL; - } - - IImageList * piml; - HRESULT hr = SHGetImageList(shiml, IID_PPV_ARG(IImageList, &piml)); - if (SUCCEEDED(hr)) - { - SendMessageW(hwndToolbar, TB_SETIMAGELIST, 0, reinterpret_cast(piml)); - } - else - { - SendMessageW(hwndToolbar, TB_SETIMAGELIST, 0, 0); - } SetWindowLongPtr(hwndToolbar, GWLP_USERDATA, reinterpret_cast(this)); m_SubclassOld = (WNDPROC) SetWindowLongPtr(hwndToolbar, GWLP_WNDPROC, reinterpret_cast(CMenuToolbarBase::s_SubclassProc)); + UpdateImageLists(); + return S_OK; } diff --git a/base/shell/rshell/CMenuToolbars.h b/base/shell/rshell/CMenuToolbars.h index 4ad19a84109..b8d4c986233 100644 --- a/base/shell/rshell/CMenuToolbars.h +++ b/base/shell/rshell/CMenuToolbars.h @@ -70,6 +70,8 @@ public: protected: LRESULT CALLBACK SubclassProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam); + + HRESULT UpdateImageLists(); }; class CMenuStaticToolbar : diff --git a/base/shell/rshell/CStartMenu.cpp b/base/shell/rshell/CStartMenu.cpp index 08be0ba68c8..f9a53ff16ee 100644 --- a/base/shell/rshell/CStartMenu.cpp +++ b/base/shell/rshell/CStartMenu.cpp @@ -90,23 +90,26 @@ private: switch (psmd->uId) { - case IDM_PROGRAMS: iconIndex = -20; break; - case IDM_FAVORITES: iconIndex = -173; break; - case IDM_DOCUMENTS: iconIndex = -21; break; - case IDM_SETTINGS: iconIndex = -22; break; + // Smaller "24x24" icons used for the start menu + // The bitmaps are still 32x32, but the image is centered + case IDM_FAVORITES: iconIndex = -209; break; + case IDM_SEARCH: iconIndex = -210; break; + case IDM_HELPANDSUPPORT: iconIndex = -211; break; + case IDM_LOGOFF: iconIndex = -212; break; + case IDM_PROGRAMS: iconIndex = -213; break; + case IDM_DOCUMENTS: iconIndex = -214; break; + case IDM_RUN: iconIndex = -215; break; + case IDM_SHUTDOWN: iconIndex = -216; break; + case IDM_SETTINGS: iconIndex = -217; break; + case IDM_CONTROLPANEL: iconIndex = -22; break; - //case IDM_SECURITY: iconIndex = -21; break; case IDM_NETWORKCONNECTIONS: iconIndex = -257; break; case IDM_PRINTERSANDFAXES: iconIndex = -138; break; case IDM_TASKBARANDSTARTMENU: iconIndex = -40; break; - case IDM_SEARCH: iconIndex = -23; break; - case IDM_HELPANDSUPPORT: iconIndex = -24; break; - case IDM_RUN: iconIndex = -25; break; + //case IDM_SECURITY: iconIndex = -21; break; //case IDM_SYNCHRONIZE: iconIndex = -21; break; - case IDM_LOGOFF: iconIndex = -45; break; //case IDM_DISCONNECT: iconIndex = -21; break; //case IDM_UNDOCKCOMPUTER: iconIndex = -21; break; - case IDM_SHUTDOWN: iconIndex = -28; break; default: return S_FALSE; } diff --git a/base/shell/rshell/wraplog.cpp b/base/shell/rshell/wraplog.cpp index 20aebb6c1b0..b2760660533 100644 --- a/base/shell/rshell/wraplog.cpp +++ b/base/shell/rshell/wraplog.cpp @@ -13,7 +13,7 @@ void WrapLogOpen() { if (openCount == 0) { - log = fopen("G:\\RShellWrap.log", "w"); + log = fopen("RShellWrap.log", "w"); nTemps = 0; callLevel = 0; }