File tree Expand file tree Collapse file tree 1 file changed +11
-0
lines changed
src/vs/editor/contrib/stickyScroll/browser Expand file tree Collapse file tree 1 file changed +11
-0
lines changed Original file line number Diff line number Diff line change @@ -21,6 +21,12 @@ export class StickyScrollWidgetState {
2121 readonly lineNumbers : number [ ] ,
2222 readonly lastLineRelativePosition : number
2323 ) { }
24+
25+ public equals ( other : StickyScrollWidgetState | undefined ) : boolean {
26+ return ! ! other && this . lastLineRelativePosition === other . lastLineRelativePosition
27+ && this . lineNumbers . length === other . lineNumbers . length
28+ && this . lineNumbers . every ( ( lineNumber , index ) => lineNumber === other . lineNumbers [ index ] ) ;
29+ }
2430}
2531
2632const _ttPolicy = createTrustedTypesPolicy ( 'stickyScrollViewLayer' , { createHTML : value => value } ) ;
@@ -35,6 +41,7 @@ export class StickyScrollWidget extends Disposable implements IOverlayWidget {
3541 private _lastLineRelativePosition : number = 0 ;
3642 private _hoverOnLine : number = - 1 ;
3743 private _hoverOnColumn : number = - 1 ;
44+ private _state : StickyScrollWidgetState | undefined ;
3845
3946 constructor (
4047 private readonly _editor : ICodeEditor
@@ -68,6 +75,10 @@ export class StickyScrollWidget extends Disposable implements IOverlayWidget {
6875 }
6976
7077 setState ( state : StickyScrollWidgetState ) : void {
78+ if ( state . equals ( this . _state ) ) {
79+ return ;
80+ }
81+ this . _state = state ;
7182 dom . clearNode ( this . _rootDomNode ) ;
7283 this . _disposableStore . clear ( ) ;
7384 this . _lineNumbers . length = 0 ;
You can’t perform that action at this time.
0 commit comments