@@ -151,7 +151,7 @@ ScopeView {
151151 }
152152 }
153153 onPressAndHold: {
154− effect.positionPx = mapToItem(categoryView, 0, itemY).y
154+ effect.positionPx = Math.max(mapToItem(categoryView, 0, itemY).y, pageHeader.height + units.gu(5));
155155 previewListView.categoryId = categoryId
156156 previewListView.categoryDelegate = rendererLoader.item
157157 previewListView.model = model;
@@ -393,12 +393,19 @@ ScopeView {
393393
394394 if (!init && model !== undefined) {
395395 var item = model.get(currentIndex)
396− scopeView.scope.preview( item.uri, item.icon, item.category, 0, item.mimetype, item.title, item.comment, item.dndUri, item.metadata)
396+ scopeView.scope.preview(item.uri, item.icon, item.category, 0, item.mimetype, item.title, item.comment, item.dndUri, item.metadata)
397397 }
398398
399399 var itemY = categoryView.contentItem.mapFromItem(categoryDelegate.currentItem).y;
400+
401+ // Find new contentY and effect.postionPx
400402 var newContentY = itemY - effect.positionPx - categoryDelegate.verticalSpacing;
401− var effectAdjust = effect.positionPx;
403+
404+ // Make sure the item is not covered by a header. Move the effect split down if necessary
405+ var headerHeight = pageHeader.height + units.gu(5); // sectionHeader's height
406+ var effectAdjust = Math.max(effect.positionPx, headerHeight);
407+
408+ // Make sure we don't overscroll the listview. If yes, adjust effect position
402409 if (newContentY < 0) {
403410 effectAdjust += newContentY;
404411 newContentY = 0;
@@ -409,7 +416,7 @@ ScopeView {
409416 }
410417
411418 effect.positionPx = effectAdjust;
412− categoryView.contentY = newContentY - categoryView.originY;
419+ categoryView.contentY = newContentY;
413420 }
414421
415422 property bool open: false