summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/controls/Menu.qml18
1 files changed, 11 insertions, 7 deletions
diff --git a/src/controls/Menu.qml b/src/controls/Menu.qml
index 7eaa0ded4..34126e254 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() }