From 5e4427d973cab6573a125f646ef2cc73b4c12c97 Mon Sep 17 00:00:00 2001 From: David Quintana Date: Tue, 15 Apr 2014 15:53:17 +0000 Subject: [PATCH] [RSHELL] * Fix keyboard navigation on vertical popup menus. Navigating through the menubar does not work yet. CORE-7586 svn path=/branches/shell-experiments/; revision=62753 --- base/shell/rshell/CMenuBand.cpp | 6 +++--- base/shell/rshell/CMenuToolbars.cpp | 4 +++- 2 files changed, 6 insertions(+), 4 deletions(-) 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)