diff --git a/base/shell/rshell/CMenuBand.cpp b/base/shell/rshell/CMenuBand.cpp index af6fb85a693..194bc79b898 100644 --- a/base/shell/rshell/CMenuBand.cpp +++ b/base/shell/rshell/CMenuBand.cpp @@ -809,16 +809,16 @@ HRESULT CMenuBand::_KeyboardItemChange(DWORD change) return hr; // Select the second toolbar based on the first - if (tb == m_SFToolbar) + if (tb == m_SFToolbar && m_staticToolbar) tb = m_staticToolbar; - else + else if (m_SFToolbar) tb = m_SFToolbar; if (!tb) return hr; // Ask the second toolbar to change - return tb->KeyboardItemChange(change == VK_DOWN ? VK_END : VK_HOME); + return tb->KeyboardItemChange(change == VK_DOWN ? VK_HOME : VK_END); } HRESULT CMenuBand::_MenuItemHotTrack(DWORD changeType) diff --git a/base/shell/rshell/CMenuToolbars.cpp b/base/shell/rshell/CMenuToolbars.cpp index 60fa00be708..8b8826bc6f0 100644 --- a/base/shell/rshell/CMenuToolbars.cpp +++ b/base/shell/rshell/CMenuToolbars.cpp @@ -913,7 +913,7 @@ HRESULT CMenuToolbarBase::KeyboardItemChange(DWORD dwSelectType) if (prev != btn.idCommand) { TRACE("Setting Hot item to %d\n", index); - m_menuBand->_ChangeHotItem(this, index, 0); + m_menuBand->_ChangeHotItem(this, btn.idCommand, 0); } return S_OK; } @@ -927,6 +927,8 @@ HRESULT CMenuToolbarBase::KeyboardItemChange(DWORD dwSelectType) index++; } } + + return S_FALSE; } if (prev != -1)