Skip to content

Commit 08d545f

Browse files
committed
Fix vertical offset value
1 parent 9675a34 commit 08d545f

File tree

2 files changed

+6
-5
lines changed

2 files changed

+6
-5
lines changed

src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatController.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ export class TerminalChatController extends Disposable implements ITerminalContr
149149

150150
xtermReady(xterm: IXtermTerminal & { raw: RawXtermTerminal }): void {
151151
this._chatWidget = new Lazy(() => {
152-
const chatWidget = this._register(this._instantiationService.createInstance(TerminalChatWidget, this._instance.domElement!, this._instance));
152+
const chatWidget = this._register(this._instantiationService.createInstance(TerminalChatWidget, this._instance.domElement!, this._instance, xterm));
153153
this._register(chatWidget.focusTracker.onDidFocus(() => {
154154
TerminalChatController.activeChatWidget = this;
155155
if (!isDetachedTerminalInstance(this._instance)) {

src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
* Licensed under the MIT License. See License.txt in the project root for license information.
44
*--------------------------------------------------------------------------------------------*/
55

6+
import type { Terminal as RawXtermTerminal } from '@xterm/xterm';
67
import { Dimension, IFocusTracker, trackFocus } from 'vs/base/browser/dom';
78
import { Event } from 'vs/base/common/event';
89
import { Disposable, toDisposable } from 'vs/base/common/lifecycle';
@@ -14,7 +15,7 @@ import { IInstantiationService } from 'vs/platform/instantiation/common/instanti
1415
import { ChatAgentLocation } from 'vs/workbench/contrib/chat/common/chatAgents';
1516
import { IChatProgress } from 'vs/workbench/contrib/chat/common/chatService';
1617
import { InlineChatWidget } from 'vs/workbench/contrib/inlineChat/browser/inlineChatWidget';
17-
import { ITerminalInstance } from 'vs/workbench/contrib/terminal/browser/terminal';
18+
import { ITerminalInstance, type IXtermTerminal } from 'vs/workbench/contrib/terminal/browser/terminal';
1819
import { MENU_TERMINAL_CHAT_INPUT, MENU_TERMINAL_CHAT_WIDGET, MENU_TERMINAL_CHAT_WIDGET_FEEDBACK, MENU_TERMINAL_CHAT_WIDGET_STATUS, TerminalChatCommandId, TerminalChatContextKeys } from 'vs/workbench/contrib/terminalContrib/chat/browser/terminalChat';
1920
import { TerminalStickyScrollContribution } from 'vs/workbench/contrib/terminalContrib/stickyScroll/browser/terminalStickyScrollContribution';
2021

@@ -37,6 +38,7 @@ export class TerminalChatWidget extends Disposable {
3738
constructor(
3839
private readonly _terminalElement: HTMLElement,
3940
private readonly _instance: ITerminalInstance,
41+
private readonly _xterm: IXtermTerminal & { raw: RawXtermTerminal },
4042
@IInstantiationService private readonly _instantiationService: IInstantiationService,
4143
@IContextKeyService private readonly _contextKeyService: IContextKeyService
4244
) {
@@ -75,7 +77,7 @@ export class TerminalChatWidget extends Disposable {
7577
this._register(Event.any(
7678
this._inlineChatWidget.onDidChangeHeight,
7779
this._instance.onDimensionsChanged,
78-
Event.debounce(this._instance.xterm!.raw.onCursorMove, () => void 0, MicrotaskDelay),
80+
Event.debounce(this._xterm.raw.onCursorMove, () => void 0, MicrotaskDelay),
7981
)(() => this._relayout()));
8082

8183
const observer = new ResizeObserver(() => this._relayout());
@@ -138,7 +140,7 @@ export class TerminalChatWidget extends Disposable {
138140
return;
139141
}
140142
if (top > terminalWrapperHeight - widgetHeight) {
141-
this._setTerminalOffset(widgetHeight);
143+
this._setTerminalOffset(top - (terminalWrapperHeight - widgetHeight));
142144
} else {
143145
this._setTerminalOffset(undefined);
144146
}
@@ -171,7 +173,6 @@ export class TerminalChatWidget extends Disposable {
171173
this._terminalElement.style.position = 'relative';
172174
this._terminalElement.style.bottom = `${offset}px`;
173175
TerminalStickyScrollContribution.get(this._instance)?.hideLock();
174-
175176
}
176177
}
177178
focus(): void {

0 commit comments

Comments
 (0)