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 {
21
21
readonly lineNumbers : number [ ] ,
22
22
readonly lastLineRelativePosition : number
23
23
) { }
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
+ }
24
30
}
25
31
26
32
const _ttPolicy = createTrustedTypesPolicy ( 'stickyScrollViewLayer' , { createHTML : value => value } ) ;
@@ -35,6 +41,7 @@ export class StickyScrollWidget extends Disposable implements IOverlayWidget {
35
41
private _lastLineRelativePosition : number = 0 ;
36
42
private _hoverOnLine : number = - 1 ;
37
43
private _hoverOnColumn : number = - 1 ;
44
+ private _state : StickyScrollWidgetState | undefined ;
38
45
39
46
constructor (
40
47
private readonly _editor : ICodeEditor
@@ -68,6 +75,10 @@ export class StickyScrollWidget extends Disposable implements IOverlayWidget {
68
75
}
69
76
70
77
setState ( state : StickyScrollWidgetState ) : void {
78
+ if ( state . equals ( this . _state ) ) {
79
+ return ;
80
+ }
81
+ this . _state = state ;
71
82
dom . clearNode ( this . _rootDomNode ) ;
72
83
this . _disposableStore . clear ( ) ;
73
84
this . _lineNumbers . length = 0 ;
You can’t perform that action at this time.
0 commit comments