diff --git a/containments/desktop/package/contents/ui/FolderView.qml b/containments/desktop/package/contents/ui/FolderView.qml --- a/containments/desktop/package/contents/ui/FolderView.qml +++ b/containments/desktop/package/contents/ui/FolderView.qml @@ -59,6 +59,8 @@ property alias scrollDown: gridView.scrollDown property alias hoveredItem: gridView.hoveredItem property var history: [] + property var indexHistory: [] + property bool goingBack: false property Item backButton: null property var dialog: null property Item editor: null @@ -190,11 +192,15 @@ function doCd(row) { history.push(url); + indexHistory.push(gridView.currentIndex); updateHistory(); dir.cd(row); + gridView.currentIndex = -1 } function doBack() { + goingBack = true + gridView.currentIndex = -1 url = history.pop(); updateHistory(); } @@ -1079,6 +1085,7 @@ onUrlChanged: { history = []; + indexHistory = []; updateHistory(); } } @@ -1106,6 +1113,10 @@ onListingCompleted: { if (!gridView.model && plasmoid.expanded) { gridView.model = positioner; + } else if (goingBack) { + goingBack = false + gridView.currentIndex = indexHistory.pop(); + setSelected(positioner.map(currentIndex)); } } diff --git a/containments/desktop/package/contents/ui/FolderViewLayer.qml b/containments/desktop/package/contents/ui/FolderViewLayer.qml --- a/containments/desktop/package/contents/ui/FolderViewLayer.qml +++ b/containments/desktop/package/contents/ui/FolderViewLayer.qml @@ -70,6 +70,7 @@ return plasmoid.configuration.url; }); folderView.history = []; + folderView.indexHistory = []; folderView.updateHistory(); } }