@@ -196,8 +196,8 @@ FocusScope {
196196 }
197197 }
198198
199− onHeightChanged: rendererLoader.updateDelegateCreationRange();
200− onYChanged: rendererLoader.updateDelegateCreationRange();
199+ onHeightChanged: rendererLoader.updateRanges();
200+ onYChanged: rendererLoader.updateRanges();
201201
202202 Loader {
203203 id: rendererLoader
@@ -245,7 +245,7 @@ FocusScope {
245245 var shouldExpand = categoryId === categoryView.expandedCategoryId;
246246 baseItem.expand(shouldExpand, false /*animate*/);
247247 }
248− updateDelegateCreationRange();
248+ updateRanges();
249249 if (scope && scope.id === "clickscope" && (categoryId === "predefined" || categoryId === "local")) {
250250 // Yeah, hackish :/
251251 cardTool.artShapeSize = Qt.size(units.gu(8), units.gu(7.5));
@@ -300,17 +300,17 @@ FocusScope {
300300 }
301301 }
302302 }
303− onOriginYChanged: rendererLoader.updateDelegateCreationRange();
304− onContentYChanged: rendererLoader.updateDelegateCreationRange();
305− onHeightChanged: rendererLoader.updateDelegateCreationRange();
306− onContentHeightChanged: rendererLoader.updateDelegateCreationRange();
303+ onOriginYChanged: rendererLoader.updateRanges();
304+ onContentYChanged: rendererLoader.updateRanges();
305+ onHeightChanged: rendererLoader.updateRanges();
306+ onContentHeightChanged: rendererLoader.updateRanges();
307307 }
308308 Connections {
309309 target: scopeView
310− onIsCurrentChanged: rendererLoader.updateDelegateCreationRange();
310+ onIsCurrentChanged: rendererLoader.updateRanges();
311311 }
312312
313− function updateDelegateCreationRange() {
313+ function updateRanges() {
314314 if (categoryView.moving) {
315315 // Do not update the range if we are overshooting up or down, since we'll come back
316316 // to the stable position and delete/create items without any reason
@@ -322,6 +322,11 @@ FocusScope {
322322 }
323323 }
324324
325+ if (item && item.hasOwnProperty("visibleRangeBegin")) {
326+ item.visibleRangeBegin = Math.max(-baseItem.y, 0)
327+ item.visibleRangeEnd = item.visibleRangeBegin + Math.min(categoryView.height, rendererLoader.height)
328+ }
329+
325330 if (item && item.hasOwnProperty("displayMarginBeginning")) {
326331 // TODO do we need item.originY here, test 1300302 once we have a silo
327332 // and we can run it on the phone