diff --git a/packages/sheets-ui/src/controllers/render-controllers/selection.render-controller.ts b/packages/sheets-ui/src/controllers/render-controllers/selection.render-controller.ts index 858d9f61474f..5c4471db7cf9 100644 --- a/packages/sheets-ui/src/controllers/render-controllers/selection.render-controller.ts +++ b/packages/sheets-ui/src/controllers/render-controllers/selection.render-controller.ts @@ -320,7 +320,7 @@ export class SelectionRenderController extends Disposable implements IRenderModu private _initSelectionChangeListener() { this.disposeWithMe( toDisposable( - this._selectionManagerService.selectionMoveEnd$.subscribe((params) => { + this._selectionManagerService.selectionMoveEndBefore$.subscribe((params) => { this._selectionRenderService.reset(); if (params == null) { return; diff --git a/packages/sheets/src/services/selection-manager.service.ts b/packages/sheets/src/services/selection-manager.service.ts index 3cb120d746ea..0e899addfa74 100644 --- a/packages/sheets/src/services/selection-manager.service.ts +++ b/packages/sheets/src/services/selection-manager.service.ts @@ -72,6 +72,9 @@ export class SelectionManagerService implements IDisposable { private readonly _selectionMoveEnd$ = new BehaviorSubject>(null); readonly selectionMoveEnd$ = this._selectionMoveEnd$.asObservable(); + private readonly _selectionMoveEndBefore$ = new BehaviorSubject>(null); + readonly selectionMoveEndBefore$ = this._selectionMoveEndBefore$.asObservable(); + private _dirty: boolean = true; // FIMXE: this dependency is not correct! @@ -340,6 +343,7 @@ export class SelectionManagerService implements IDisposable { } private _refresh(param?: ISelectionManagerSearchParam): void { + this._selectionMoveEndBefore$.next(this._getSelectionDatas(param)); this._selectionMoveEnd$.next(this._getSelectionDatas(param)); }