@@ -281,7 +281,6 @@ export class ListView<T> implements IListView<T> {
281
281
private items : IItem < T > [ ] ;
282
282
private itemId : number ;
283
283
private rangeMap : RangeMap ;
284
- private paddingTop : number ;
285
284
private cache : RowCache < T > ;
286
285
private renderers = new Map < string , IListRenderer < any /* TODO@joao */ , any > > ( ) ;
287
286
private lastRenderTop : number ;
@@ -366,8 +365,7 @@ export class ListView<T> implements IListView<T> {
366
365
367
366
this . items = [ ] ;
368
367
this . itemId = 0 ;
369
- this . paddingTop = options . paddingTop ?? 0 ;
370
- this . rangeMap = new RangeMap ( this . paddingTop ) ;
368
+ this . rangeMap = new RangeMap ( options . paddingTop ?? 0 ) ;
371
369
372
370
for ( const renderer of renderers ) {
373
371
this . renderers . set ( renderer . templateId , renderer ) ;
@@ -475,9 +473,8 @@ export class ListView<T> implements IListView<T> {
475
473
this . scrollableElement . updateOptions ( scrollableOptions ) ;
476
474
}
477
475
478
- if ( options . paddingTop !== undefined && options . paddingTop !== this . paddingTop ) {
476
+ if ( options . paddingTop !== undefined && options . paddingTop !== this . rangeMap . paddingTop ) {
479
477
// trigger a rerender
480
- this . paddingTop = options . paddingTop ;
481
478
const lastRenderRange = this . getRenderRange ( this . lastRenderTop , this . lastRenderHeight ) ;
482
479
const offset = options . paddingTop - this . rangeMap . paddingTop ;
483
480
this . rangeMap . paddingTop = options . paddingTop ;
@@ -622,7 +619,7 @@ export class ListView<T> implements IListView<T> {
622
619
623
620
// TODO@joao : improve this optimization to catch even more cases
624
621
if ( start === 0 && deleteCount >= this . items . length ) {
625
- this . rangeMap = new RangeMap ( this . paddingTop ) ;
622
+ this . rangeMap = new RangeMap ( this . rangeMap . paddingTop ) ;
626
623
this . rangeMap . splice ( 0 , 0 , inserted ) ;
627
624
deleted = this . items ;
628
625
this . items = inserted ;
0 commit comments