diff --git a/qml/AppListView.qml b/qml/AppListView.qml index b346c95b..44d77d87 100644 --- a/qml/AppListView.qml +++ b/qml/AppListView.qml @@ -42,12 +42,6 @@ Item { } } - function scrollToHighlight() { - listView.highlightMoveDuration = 0 - listView.highlightRangeMode = ListView.StrictlyEnforceRange - postScrollDeferTimer.restart() - } - Component { id: sectionHeading ToolButton { @@ -92,10 +86,12 @@ Item { // displayMarginBeginning: -45 clip: true focus: true - onFocusChanged: { - if (focus) { + onActiveFocusChanged: { + if (activeFocus) { // When focus in, we always scroll to the highlight - scrollToHighlight() + listView.highlightMoveDuration = 0 + listView.highlightRangeMode = ListView.StrictlyEnforceRange + postScrollDeferTimer.restart() } } diff --git a/qml/GridViewContainer.qml b/qml/GridViewContainer.qml index 2cf802d3..55ddb6d4 100644 --- a/qml/GridViewContainer.qml +++ b/qml/GridViewContainer.qml @@ -52,16 +52,31 @@ FocusScope { height: rows == 0 ? parent.height : (item.cellSize * root.rows) color: "transparent" + Timer { + id: postScrollDeferTimer + interval: 150 + onTriggered: { + gridView.highlightMoveDuration = 150 + gridView.highlightRangeMode = GridView.NoHighlightRange + } + } + GridView { id: gridView anchors.fill: parent clip: true highlightFollowsCurrentItem: true keyNavigationEnabled: true - highlightMoveDuration: 0 + highlightMoveDuration: 150 activeFocusOnTab: focus ? root.activeGridViewFocusOnTab : false focus: count > 0 - + onActiveFocusChanged: { + if (activeFocus) { + gridView.highlightMoveDuration = 0 + gridView.highlightRangeMode = GridView.StrictlyEnforceRange + postScrollDeferTimer.restart() + } + } cellHeight: item.cellSize cellWidth: item.cellSize