Skip to content

Commit 0d1e6b7

Browse files
authored
Merge pull request #5390 from xtermjs/anthonykim1/fixTeleportAltBuffer
Fix scrollbar teleport after exiting alt buffer
2 parents e969832 + a6fdf04 commit 0d1e6b7

File tree

2 files changed

+8
-0
lines changed

2 files changed

+8
-0
lines changed

src/common/TestUtils.test.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,18 @@ export class MockBufferService implements IBufferService {
2020
public buffers: IBufferSet = {} as any;
2121
public onResize: Event<{ cols: number, rows: number }> = new Emitter<{ cols: number, rows: number }>().event;
2222
public onScroll: Event<number> = new Emitter<number>().event;
23+
private readonly _onScroll = new Emitter<number>();
2324
public isUserScrolling: boolean = false;
2425
constructor(
2526
public cols: number,
2627
public rows: number,
2728
optionsService: IOptionsService = new MockOptionsService()
2829
) {
2930
this.buffers = new BufferSet(optionsService, this);
31+
// Listen to buffer activation events and automatically fire scroll events
32+
this.buffers.onBufferActivate(e => {
33+
this._onScroll.fire(e.activeBuffer.ydisp);
34+
});
3035
}
3136
public scrollPages(pageCount: number): void {
3237
throw new Error('Method not implemented.');

src/common/services/BufferService.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,9 @@ export class BufferService extends Disposable implements IBufferService {
3737
this.cols = Math.max(optionsService.rawOptions.cols || 0, MINIMUM_COLS);
3838
this.rows = Math.max(optionsService.rawOptions.rows || 0, MINIMUM_ROWS);
3939
this.buffers = this._register(new BufferSet(optionsService, this));
40+
this._register(this.buffers.onBufferActivate(e => {
41+
this._onScroll.fire(e.activeBuffer.ydisp);
42+
}));
4043
}
4144

4245
public resize(cols: number, rows: number): void {

0 commit comments

Comments
 (0)