diff options
author | Gabriel de Dietrich <gabriel.dedietrich@digia.com> | 2013-02-26 20:18:40 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-02-27 07:41:56 +0100 |
commit | cddcc3c81e791f88717fee80766523bb0ef3d171 (patch) | |
tree | db8e19442b6f315ec5b0f8aaeedbe8da99f4cdbd /src/controls/Menu.qml | |
parent | 44fae3e87c7534fa7bb8f6b26c697e84623f2437 (diff) | |
download | qtquickcontrols-cddcc3c81e791f88717fee80766523bb0ef3d171.tar.gz |
Menu: Make key navigation to submenu faster
Change-Id: I4423f29d9c678d3432732ddf612042446e196869
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
Diffstat (limited to 'src/controls/Menu.qml')
-rw-r--r-- | src/controls/Menu.qml | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/src/controls/Menu.qml b/src/controls/Menu.qml index 7eaa0ded..34126e25 100644 --- a/src/controls/Menu.qml +++ b/src/controls/Menu.qml @@ -168,7 +168,7 @@ MenuPrivate { Keys.onRightPressed: { var item = itemsRepeater.itemAt(root.currentIndex) if (item && item.hasSubmenu) { - item.showSubMenu() + item.showSubMenu(true) item.menuItem.currentIndex = 0 } } @@ -212,7 +212,7 @@ MenuPrivate { if (currentItem) { root.currentIndex = currentItem.menuItemIndex if (currentItem.hasSubmenu && !currentItem.menuItem.popupVisible) - currentItem.showSubMenu() + currentItem.showSubMenu(false) } else { root.currentIndex = -1 } @@ -241,15 +241,19 @@ MenuPrivate { sourceComponent: menuFrameLoader.menuItemStyle enabled: !isSeparator && !!menuItem && menuItem.enabled - function showSubMenu() { openMenuTimer.start() } + function showSubMenu(immediately) { + if (immediately) { + if (root.currentIndex === menuItemIndex) + menuItem.showPopup(menuFrameLoader.subMenuXPos, 0, -1, menuItemLoader) + } else { + openMenuTimer.start() + } + } Timer { id: openMenuTimer interval: 50 - onTriggered: { - if (root.currentIndex === menuItemIndex) - menuItem.showPopup(menuFrameLoader.subMenuXPos, 0, -1, menuItemLoader) - } + onTriggered: menuItemLoader.showSubMenu(true) } function closeSubMenu() { closeMenuTimer.start() } |