@@ -2357,38 +2357,44 @@ export abstract class AbstractTree<T, TFilterData, TRef> implements IDisposable
2357
2357
return this . view . setAnchor ( undefined ) ;
2358
2358
}
2359
2359
2360
- const node = this . model . getNode ( element ) ;
2361
- this . anchor . set ( [ node ] ) ;
2360
+ this . eventBufferer . bufferEvents ( ( ) => {
2361
+ const node = this . model . getNode ( element ) ;
2362
+ this . anchor . set ( [ node ] ) ;
2362
2363
2363
- const index = this . model . getListIndex ( element ) ;
2364
+ const index = this . model . getListIndex ( element ) ;
2364
2365
2365
- if ( index > - 1 ) {
2366
- this . view . setAnchor ( index , true ) ;
2367
- }
2366
+ if ( index > - 1 ) {
2367
+ this . view . setAnchor ( index , true ) ;
2368
+ }
2369
+ } ) ;
2368
2370
}
2369
2371
2370
2372
getAnchor ( ) : T | undefined {
2371
2373
return firstOrDefault ( this . anchor . get ( ) , undefined ) ;
2372
2374
}
2373
2375
2374
2376
setSelection ( elements : TRef [ ] , browserEvent ?: UIEvent ) : void {
2375
- const nodes = elements . map ( e => this . model . getNode ( e ) ) ;
2376
- this . selection . set ( nodes , browserEvent ) ;
2377
+ this . eventBufferer . bufferEvents ( ( ) => {
2378
+ const nodes = elements . map ( e => this . model . getNode ( e ) ) ;
2379
+ this . selection . set ( nodes , browserEvent ) ;
2377
2380
2378
- const indexes = elements . map ( e => this . model . getListIndex ( e ) ) . filter ( i => i > - 1 ) ;
2379
- this . view . setSelection ( indexes , browserEvent , true ) ;
2381
+ const indexes = elements . map ( e => this . model . getListIndex ( e ) ) . filter ( i => i > - 1 ) ;
2382
+ this . view . setSelection ( indexes , browserEvent , true ) ;
2383
+ } ) ;
2380
2384
}
2381
2385
2382
2386
getSelection ( ) : T [ ] {
2383
2387
return this . selection . get ( ) ;
2384
2388
}
2385
2389
2386
2390
setFocus ( elements : TRef [ ] , browserEvent ?: UIEvent ) : void {
2387
- const nodes = elements . map ( e => this . model . getNode ( e ) ) ;
2388
- this . focus . set ( nodes , browserEvent ) ;
2391
+ this . eventBufferer . bufferEvents ( ( ) => {
2392
+ const nodes = elements . map ( e => this . model . getNode ( e ) ) ;
2393
+ this . focus . set ( nodes , browserEvent ) ;
2389
2394
2390
- const indexes = elements . map ( e => this . model . getListIndex ( e ) ) . filter ( i => i > - 1 ) ;
2391
- this . view . setFocus ( indexes , browserEvent , true ) ;
2395
+ const indexes = elements . map ( e => this . model . getListIndex ( e ) ) . filter ( i => i > - 1 ) ;
2396
+ this . view . setFocus ( indexes , browserEvent , true ) ;
2397
+ } ) ;
2392
2398
}
2393
2399
2394
2400
focusNext ( n = 1 , loop = false , browserEvent ?: UIEvent , filter = ( isKeyboardEvent ( browserEvent ) && browserEvent . altKey ) ? undefined : this . focusNavigationFilter ) : void {
0 commit comments