Skip to content

Commit 8d7c5b9

Browse files
authored
testing: fix debounce terminal resizes (microsoft#187071)
For microsoft#186328
1 parent 6e60843 commit 8d7c5b9

File tree

2 files changed

+13
-5
lines changed

2 files changed

+13
-5
lines changed

src/vs/workbench/contrib/testing/browser/media/testing.css

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,10 @@
183183
border-bottom-width: 2px;
184184
}
185185

186+
.test-output-peek-message-container {
187+
overflow: hidden;
188+
}
189+
186190
.test-output-peek-message-container,
187191
.test-output-peek-tree {
188192
height: 100%;

src/vs/workbench/contrib/testing/browser/testingOutputPeek.ts

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import { ICompressedTreeElement, ICompressedTreeNode } from 'vs/base/browser/ui/
1515
import { ICompressibleTreeRenderer } from 'vs/base/browser/ui/tree/objectTree';
1616
import { ITreeContextMenuEvent, ITreeNode } from 'vs/base/browser/ui/tree/tree';
1717
import { Action, IAction, Separator } from 'vs/base/common/actions';
18-
import { RunOnceScheduler } from 'vs/base/common/async';
18+
import { Delayer, RunOnceScheduler } from 'vs/base/common/async';
1919
import { Codicon } from 'vs/base/common/codicons';
2020
import { Color } from 'vs/base/common/color';
2121
import { Emitter, Event } from 'vs/base/common/event';
@@ -1228,6 +1228,7 @@ class PlainTextMessagePeek extends Disposable implements IPeekOutputRenderer {
12281228
class TerminalMessagePeek extends Disposable implements IPeekOutputRenderer {
12291229
private dimensions?: dom.IDimension;
12301230
private readonly terminalCwd = this._register(new MutableObservableValue<string>(''));
1231+
private readonly xtermLayoutDelayer = this._register(new Delayer(50));
12311232

12321233
/** Active terminal instance. */
12331234
private readonly terminal = this._register(new MutableDisposable<IDetachedXtermTerminal>());
@@ -1343,6 +1344,7 @@ class TerminalMessagePeek extends Disposable implements IPeekOutputRenderer {
13431344

13441345
private clear() {
13451346
this.outputDataListener.clear();
1347+
this.xtermLayoutDelayer.cancel();
13461348
this.terminal.clear();
13471349
}
13481350

@@ -1359,10 +1361,12 @@ class TerminalMessagePeek extends Disposable implements IPeekOutputRenderer {
13591361
height = this.dimensions?.height ?? this.container.clientHeight
13601362
) {
13611363
width -= 10 + 20; // scrollbar width + margin
1362-
const scaled = getXtermScaledDimensions(xterm.getFont(), width, height);
1363-
if (scaled) {
1364-
xterm.resize(scaled.cols, scaled.rows);
1365-
}
1364+
this.xtermLayoutDelayer.trigger(() => {
1365+
const scaled = getXtermScaledDimensions(xterm.getFont(), width, height);
1366+
if (scaled) {
1367+
xterm.resize(scaled.cols, scaled.rows);
1368+
}
1369+
});
13661370
}
13671371
}
13681372

0 commit comments

Comments
 (0)