Skip to content

Commit 9dc000f

Browse files
committed
Fixes microsoft#223410. Re-layouts the diff editor when decorationsLeft changes.
1 parent 78d09a8 commit 9dc000f

File tree

3 files changed

+6
-2
lines changed

3 files changed

+6
-2
lines changed

src/vs/editor/browser/observableCodeEditor.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,7 @@ export class ObservableCodeEditor extends Disposable {
191191

192192
public readonly layoutInfo = observableFromEvent(this.editor.onDidLayoutChange, () => this.editor.getLayoutInfo());
193193
public readonly layoutInfoContentLeft = this.layoutInfo.map(l => l.contentLeft);
194+
public readonly layoutInfoDecorationsLeft = this.layoutInfo.map(l => l.decorationsLeft);
194195

195196
public readonly contentWidth = observableFromEvent(this.editor.onDidContentSizeChange, () => this.editor.getContentWidth());
196197

src/vs/editor/browser/widget/diffEditor/components/diffEditorEditors.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,10 @@ export class DiffEditorEditors extends Disposable {
3030
public readonly modifiedScrollTop = observableFromEvent(this, this.modified.onDidScrollChange, () => /** @description modified.getScrollTop */ this.modified.getScrollTop());
3131
public readonly modifiedScrollHeight = observableFromEvent(this, this.modified.onDidScrollChange, () => /** @description modified.getScrollHeight */ this.modified.getScrollHeight());
3232

33-
public readonly modifiedModel = observableCodeEditor(this.modified).model;
33+
public readonly modifiedObs = observableCodeEditor(this.modified);
34+
public readonly originalObs = observableCodeEditor(this.original);
35+
36+
public readonly modifiedModel = this.modifiedObs.model;
3437

3538
public readonly modifiedSelections = observableFromEvent(this, this.modified.onDidChangeCursorSelection, () => this.modified.getSelections() ?? []);
3639
public readonly modifiedCursor = derivedOpts({ owner: this, equalsFn: Position.equals }, reader => this.modifiedSelections.read(reader)[0]?.getPosition() ?? new Position(1, 1));

src/vs/editor/browser/widget/diffEditor/diffEditorWidget.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -390,7 +390,7 @@ export class DiffEditorWidget extends DelegatingEditor implements IDiffEditor {
390390
if (shouldHideOriginalLineNumbers) {
391391
originalWidth = 0;
392392
} else {
393-
originalWidth = Math.max(5, this._editors.original.getLayoutInfo().decorationsLeft);
393+
originalWidth = Math.max(5, this._editors.originalObs.layoutInfoDecorationsLeft.read(reader));
394394
}
395395

396396
modifiedLeft = gutterWidth + originalWidth;

0 commit comments

Comments
 (0)