@@ -346,27 +346,31 @@ ScopeView {
346346
347347 onCurrentIndexChanged: {
348348 var row = Math.floor(currentIndex / categoryDelegate.columns);
349+ if (categoryDelegate.collapsedRowCount <= row) {
350+ categoryView.expandedCategoryId = categoryId
351+ }
349352 if (!init && model !== undefined) {
350353 var item = model.get(currentIndex)
351354 scopeView.scope.preview( item.uri, item.icon, item.category, 0, item.mimetype, item.title, item.comment, item.dndUri, item.metadata)
352355 if (oldRow != -1) {
353356 if (row < oldRow) {
357+ var effectMove = 0;
354358 if (categoryView.contentY - categoryDelegate.cellHeight < 0) {
355− effect.positionPx -= categoryDelegate.cellHeight - categoryView.contentY
359+ effectMove = categoryDelegate.cellHeight - categoryView.contentY;
360+ effect.positionPx -= effectMove;
356361 }
357− categoryView.contentY = Math.max(0, categoryView.contentY - categoryDelegate.cellHeight)
362+ categoryView.contentY -= categoryDelegate.cellHeight - effectMove;
358363 } else if (row > oldRow){
364+ var effectMove = 0;
359365 if (categoryView.contentY + categoryDelegate.cellHeight > categoryView.contentHeight - categoryView.height) {
360− effect.positionPx += categoryDelegate.cellHeight - (categoryView.contentY - (categoryView.contentHeight - categoryView.height))
366+ effectMove = (categoryView.contentY + categoryDelegate.cellHeight) - (categoryView.contentHeight - categoryView.height);
367+ effect.positionPx += effectMove;
361368 }
362− categoryView.contentY = Math.min(categoryView.contentHeight - categoryView.height, categoryView.contentY + categoryDelegate.cellHeight)
369+ categoryView.contentY += categoryDelegate.cellHeight - effectMove
363370 }
364371 }
365372 }
366373 oldRow = row;
367− if (categoryDelegate.collapsedRowCount <= row) {
368− categoryView.expandedCategoryId = categoryId
369− }
370374
371375 if (open) {
372376 categoryDelegate.highlightIndex = currentIndex