From d124fcba6975703356a16b9e53390d0c5b6e20ad Mon Sep 17 00:00:00 2001 From: Gabriel de Dietrich Date: Tue, 24 Mar 2015 15:54:58 +0100 Subject: Menus: Ignore non-visible menu popups on key navigation Change-Id: Ie9fce58dd6481a66539bfe6c24487d7c630a583f Reviewed-by: J-P Nurmi --- src/controls/MenuBar.qml | 4 ++-- src/controls/Private/MenuContentItem.qml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/controls/MenuBar.qml b/src/controls/MenuBar.qml index ce37ed6d..272ed444 100644 --- a/src/controls/MenuBar.qml +++ b/src/controls/MenuBar.qml @@ -189,7 +189,7 @@ MenuBarPrivate { Keys.onLeftPressed: { if (d.openedMenuIndex > 0) { var idx = d.openedMenuIndex - 1 - while (idx >= 0 && !root.menus[idx].enabled) + while (idx >= 0 && !(root.menus[idx].enabled && root.menus[idx].visible)) idx-- if (idx >= 0) { d.preselectMenuItem = true @@ -203,7 +203,7 @@ MenuBarPrivate { Keys.onRightPressed: { if (d.openedMenuIndex !== -1 && d.openedMenuIndex < root.menus.length - 1) { var idx = d.openedMenuIndex + 1 - while (idx < root.menus.length && !root.menus[idx].enabled) + while (idx < root.menus.length && !(root.menus[idx].enabled && root.menus[idx].visible)) idx++ if (idx < root.menus.length) { d.preselectMenuItem = true diff --git a/src/controls/Private/MenuContentItem.qml b/src/controls/Private/MenuContentItem.qml index a503d1d4..d926ff75 100644 --- a/src/controls/Private/MenuContentItem.qml +++ b/src/controls/Private/MenuContentItem.qml @@ -71,7 +71,7 @@ Loader { function canBeHovered(index) { var item = content.menuItemAt(index) - if (item && item.styleData.type !== MenuItemType.Separator && item.styleData.enabled) { + if (item && item.visible && item.styleData.type !== MenuItemType.Separator && item.styleData.enabled) { __menu.__currentIndex = index return true } -- cgit v1.2.1