Skip to content

Commit 9290de6

Browse files
CopilotTyriar
andcommitted
Fix terminal creation in auxiliary windows - detect and use current window context
Co-authored-by: Tyriar <[email protected]>
1 parent fb527b0 commit 9290de6

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

src/vs/workbench/contrib/terminal/browser/terminalActions.ts

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ import { CONTEXT_ACCESSIBILITY_MODE_ENABLED } from '../../../../platform/accessi
2727
import { Action2, IAction2Options, MenuId, registerAction2 } from '../../../../platform/actions/common/actions.js';
2828
import { ICommandService } from '../../../../platform/commands/common/commands.js';
2929
import { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';
30-
import { ContextKeyExpr } from '../../../../platform/contextkey/common/contextkey.js';
30+
import { ContextKeyExpr, IContextKeyService } from '../../../../platform/contextkey/common/contextkey.js';
3131
import { FileKind } from '../../../../platform/files/common/files.js';
3232
import { ServicesAccessor } from '../../../../platform/instantiation/common/instantiation.js';
3333
import { KeybindingWeight } from '../../../../platform/keybinding/common/keybindingsRegistry.js';
@@ -55,6 +55,7 @@ import { accessibleViewCurrentProviderId, accessibleViewIsShown, accessibleViewO
5555
import { IRemoteTerminalAttachTarget, ITerminalProfileResolverService, ITerminalProfileService, TERMINAL_VIEW_ID, TerminalCommandId } from '../common/terminal.js';
5656
import { TerminalContextKeys } from '../common/terminalContextKey.js';
5757
import { terminalStrings } from '../common/terminalStrings.js';
58+
import { IsAuxiliaryWindowContext } from '../../../common/contextkeys.js';
5859
import { Direction, ICreateTerminalOptions, IDetachedTerminalInstance, ITerminalConfigurationService, ITerminalEditorService, ITerminalGroupService, ITerminalInstance, ITerminalInstanceService, ITerminalService, IXtermTerminal } from './terminal.js';
5960
import { InstanceContext } from './terminalContextMenu.js';
6061
import { getColorClass, getIconId, getUriClasses } from './terminalIcon.js';
@@ -1178,15 +1179,25 @@ export function registerTerminalActions() {
11781179
let eventOrOptions = isObject(args) ? args as MouseEvent | ICreateTerminalOptions : undefined;
11791180
const workspaceContextService = accessor.get(IWorkspaceContextService);
11801181
const commandService = accessor.get(ICommandService);
1182+
const contextKeyService = accessor.get(IContextKeyService);
1183+
const editorGroupsService = accessor.get(IEditorGroupsService);
11811184
const folders = workspaceContextService.getWorkspace().folders;
11821185
if (eventOrOptions && isMouseEvent(eventOrOptions) && (eventOrOptions.altKey || eventOrOptions.ctrlKey)) {
11831186
await c.service.createTerminal({ location: { splitActiveTerminal: true } });
11841187
return;
11851188
}
11861189

1190+
// Check if we're in an auxiliary window and need to create the terminal there
1191+
const isAuxiliaryWindow = contextKeyService.getContextKeyValue(IsAuxiliaryWindowContext.key);
1192+
11871193
if (c.service.isProcessSupportRegistered) {
11881194
eventOrOptions = !eventOrOptions || isMouseEvent(eventOrOptions) ? {} : eventOrOptions;
11891195

1196+
// If we're in an auxiliary window, create the terminal in the current window's editor area
1197+
if (isAuxiliaryWindow && !eventOrOptions.location) {
1198+
eventOrOptions.location = { viewColumn: editorGroupToColumn(editorGroupsService, editorGroupsService.activeGroup) };
1199+
}
1200+
11901201
let instance: ITerminalInstance | undefined;
11911202
if (folders.length <= 1) {
11921203
// Allow terminal service to handle the path when there is only a

0 commit comments

Comments
 (0)