diff --git a/shell/plugins/menu/Menu.qml b/shell/plugins/menu/Menu.qml index 70c5181782..dbcd4a115b 100644 --- a/shell/plugins/menu/Menu.qml +++ b/shell/plugins/menu/Menu.qml @@ -841,6 +841,9 @@ Item { if (root.filterText.length > 0) root.setFilter(root.filterText.slice(0, -1)) else root.goBack() event.accepted = true + } else if (!root.dmenuActive && event.key === Qt.Key_Left) { + root.goBack() + event.accepted = true } else if (event.key === Qt.Key_Up) { root.select(-1) event.accepted = true diff --git a/test/shell.d/menu-test.sh b/test/shell.d/menu-test.sh index ec7fad18c9..04a2e5fd0b 100644 --- a/test/shell.d/menu-test.sh +++ b/test/shell.d/menu-test.sh @@ -118,6 +118,10 @@ assert( /function setActiveMenu\(id, pushHistory\)[\s\S]*root\.disarmPointer\(\)/.test(menuQml), 'menu route changes disarm pointer selection' ) +assert( + /Qt\.Key_Left\)[\s\S]*root\.goBack\(\)/.test(menuQml), + 'menu supports left-arrow back navigation' +) assert( /PointerMoveGate\s*\{[\s\S]*id: pointerGate[\s\S]*referenceItem: card[\s\S]*\}/.test(menuQml), 'menu uses shared pointer movement gate in card coordinates'