@@ -208,6 +208,12 @@ UbuntuShape {
208208 contentHeight: menuColumn.height
209209 interactive: height < contentHeight
210210
211+ Timer {
212+ id: submenuHoverTimer
213+ interval: 225 // GTK MENU_POPUP_DELAY, Qt SH_Menu_SubMenuPopupDelay in QCommonStyle is 256
214+ onTriggered: d.currentItem.item.trigger();
215+ }
216+
211217 MouseArea {
212218 anchors.fill: parent
213219 hoverEnabled: true
@@ -221,12 +227,17 @@ UbuntuShape {
221227
222228 if (!d.hoveredItem || !d.currentItem ||
223229 !d.hoveredItem.contains(Qt.point(pos.x - d.currentItem.x, pos.y - d.currentItem.y))) {
230+ submenuHoverTimer.stop();
231+
224232 d.hoveredItem = menuColumn.childAt(pos.x, pos.y)
225233 if (!d.hoveredItem || !d.hoveredItem.enabled)
226− return false;
234+ return;
227235 d.currentItem = d.hoveredItem;
236+
237+ if (!d.currentItem.__isSeparator && d.currentItem.item.hasSubmenu) {
238+ submenuHoverTimer.start();
239+ }
228240 }
229− return true;
230241 }
231242 }
232243