diff --git a/shell/plugins/menu/Menu.qml b/shell/plugins/menu/Menu.qml index b9a7bdc1..6f4bda7e 100644 --- a/shell/plugins/menu/Menu.qml +++ b/shell/plugins/menu/Menu.qml @@ -840,7 +840,7 @@ Item { } else if (Util.editsFilter(event, root.filterText)) { root.setFilter(Util.editedFilter(event, root.filterText)) event.accepted = true - } else if (event.key === Qt.Key_Backspace && !root.filterText) { + } else if ((event.key === Qt.Key_Backspace || event.key === Qt.Key_Left) && !root.filterText) { root.goBack() event.accepted = true } else if (event.key === Qt.Key_Up) { diff --git a/test/shell.d/menu-test.sh b/test/shell.d/menu-test.sh index ec7fad18..e2dc3216 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( + /\(event\.key === Qt\.Key_Backspace \|\| event\.key === Qt\.Key_Left\) && !root\.filterText[\s\S]*root\.goBack\(\)/.test(menuQml), + 'menu Left key follows empty-filter Backspace 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'