Skip to content

Commit c11b915

Browse files
committed
1 parent 467c337 commit c11b915

7 files changed

Lines changed: 100 additions & 5 deletions

File tree

src/vs/base/browser/ui/selectBox/selectBoxNative.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,10 @@ export class SelectBoxNative extends Disposable implements ISelectBoxDelegate {
5151
}));
5252
});
5353

54+
this._register(dom.addStandardDisposableListener(this.selectElement, 'click', (e) => {
55+
dom.EventHelper.stop(e, true);
56+
}));
57+
5458
this._register(dom.addStandardDisposableListener(this.selectElement, 'change', (e) => {
5559
this.selectElement.title = e.target.value;
5660
this._onDidSelect.fire({

src/vs/base/browser/ui/splitview/paneview.css

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,17 @@
6868
color: inherit;
6969
}
7070

71+
.monaco-pane-view .pane > .pane-header .monaco-action-bar .action-item.select-container {
72+
cursor: default;
73+
}
74+
75+
.monaco-pane-view .pane > .pane-header .action-item .monaco-select-box {
76+
cursor: pointer;
77+
min-width: 110px;
78+
min-height: 18px;
79+
padding: 2px 23px 2px 8px;
80+
}
81+
7182
/* Bold font style does not go well with CJK fonts */
7283
.monaco-pane-view:lang(zh-Hans) .pane > .pane-header,
7384
.monaco-pane-view:lang(zh-Hant) .pane > .pane-header,
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
/*---------------------------------------------------------------------------------------------
2+
* Copyright (c) Microsoft Corporation. All rights reserved.
3+
* Licensed under the MIT License. See License.txt in the project root for license information.
4+
*--------------------------------------------------------------------------------------------*/
5+
6+
.monaco-workbench .part > .title > .title-actions .switch-output {
7+
display: flex;
8+
align-items: center;
9+
font-size: 11px;
10+
margin-right: 0.3em;
11+
height: 20px;
12+
flex-shrink: 1;
13+
margin-top: 7px;
14+
}
15+
16+
.monaco-workbench.mac .part > .title > .title-actions .switch-output {
17+
border-radius: 4px;
18+
}
19+
20+
.monaco-workbench .part > .title > .title-actions .switch-output > .monaco-select-box {
21+
border: none !important;
22+
display: block !important;
23+
background-color: unset !important;
24+
}
25+
26+
.monaco-pane-view .pane > .pane-header .monaco-action-bar .switch-output.action-item.select-container {
27+
border: none !important;
28+
}
29+
30+
.monaco-workbench .part > .title > .title-actions .switch-output > .monaco-select-box {
31+
padding: 0 22px 0 6px;
32+
}

src/vs/workbench/contrib/output/browser/output.contribution.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
import * as nls from 'vs/nls';
77
import * as aria from 'vs/base/browser/ui/aria/aria';
8+
import 'vs/css!./media/output';
89
import { KeyMod, KeyChord, KeyCode } from 'vs/base/common/keyCodes';
910
import { ModesRegistry } from 'vs/editor/common/modes/modesRegistry';
1011
import { Registry } from 'vs/platform/registry/common/platform';

src/vs/workbench/contrib/output/browser/outputView.ts

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,11 @@ import { ResourceEditorInput } from 'vs/workbench/common/editor/resourceEditorIn
3131
import { IOpenerService } from 'vs/platform/opener/common/opener';
3232
import { IOutputChannelDescriptor, IOutputChannelRegistry, Extensions } from 'vs/workbench/services/output/common/output';
3333
import { Registry } from 'vs/platform/registry/common/platform';
34-
import { attachSelectBoxStyler } from 'vs/platform/theme/common/styler';
34+
import { attachSelectBoxStyler, attachStylerCallback } from 'vs/platform/theme/common/styler';
3535
import { ISelectOptionItem } from 'vs/base/browser/ui/selectBox/selectBox';
3636
import { groupBy } from 'vs/base/common/arrays';
3737
import { SIDE_BAR_BACKGROUND } from 'vs/workbench/common/theme';
38-
import { editorBackground } from 'vs/platform/theme/common/colorRegistry';
38+
import { editorBackground, selectBorder } from 'vs/platform/theme/common/colorRegistry';
3939
import { addClass } from 'vs/base/browser/dom';
4040

4141
export class OutputViewPane extends ViewPane {
@@ -275,7 +275,7 @@ class SwitchOutputActionViewItem extends SelectActionViewItem {
275275
constructor(
276276
action: IAction,
277277
@IOutputService private readonly outputService: IOutputService,
278-
@IThemeService themeService: IThemeService,
278+
@IThemeService private readonly themeService: IThemeService,
279279
@IContextViewService contextViewService: IContextViewService
280280
) {
281281
super(null, action, [], 0, contextViewService, { ariaLabel: nls.localize('outputChannels', 'Output Channels.') });
@@ -289,6 +289,14 @@ class SwitchOutputActionViewItem extends SelectActionViewItem {
289289
this.updateOtions();
290290
}
291291

292+
render(container: HTMLElement): void {
293+
super.render(container);
294+
addClass(container, 'switch-output');
295+
this._register(attachStylerCallback(this.themeService, { selectBorder }, colors => {
296+
container.style.border = colors.selectBorder ? `1px solid ${colors.selectBorder}` : '';
297+
}));
298+
}
299+
292300
protected getActionContext(option: string, index: number): string {
293301
const channel = index < this.outputChannels.length ? this.outputChannels[index] : this.logChannels[index - this.outputChannels.length - 1];
294302
return channel ? channel.id : option;

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

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,3 +160,32 @@
160160
.monaco-workbench .part.sidebar .title-actions .terminal-action.codicon-split-horizontal {
161161
transform: rotate(-90deg);
162162
}
163+
164+
.monaco-workbench .part > .title > .title-actions .switch-terminal {
165+
display: flex;
166+
align-items: center;
167+
font-size: 11px;
168+
margin-right: 0.3em;
169+
height: 20px;
170+
flex-shrink: 1;
171+
margin-top: 7px;
172+
}
173+
174+
.monaco-workbench.mac .part > .title > .title-actions .switch-terminal {
175+
border-radius: 4px;
176+
}
177+
178+
.monaco-workbench .part > .title > .title-actions .switch-terminal > .monaco-select-box {
179+
border: none !important;
180+
display: block !important;
181+
background-color: unset !important;
182+
}
183+
184+
.monaco-pane-view .pane > .pane-header .monaco-action-bar .switch-terminal.action-item.select-container {
185+
border: none !important;
186+
}
187+
188+
.monaco-workbench .part > .title > .title-actions .switch-terminal > .monaco-select-box {
189+
padding: 0 22px 0 6px;
190+
}
191+

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

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import { ICodeEditorService } from 'vs/editor/browser/services/codeEditorService
1010
import { TERMINAL_VIEW_ID, ITerminalConfigHelper, TitleEventSource, TERMINAL_COMMAND_ID } from 'vs/workbench/contrib/terminal/common/terminal';
1111
import { SelectActionViewItem } from 'vs/base/browser/ui/actionbar/actionbar';
1212
import { IWorkbenchLayoutService } from 'vs/workbench/services/layout/browser/layoutService';
13-
import { attachSelectBoxStyler } from 'vs/platform/theme/common/styler';
13+
import { attachSelectBoxStyler, attachStylerCallback } from 'vs/platform/theme/common/styler';
1414
import { IThemeService } from 'vs/platform/theme/common/themeService';
1515
import { IQuickInputService, IPickOptions, IQuickPickItem } from 'vs/platform/quickinput/common/quickInput';
1616
import { ServicesAccessor } from 'vs/platform/instantiation/common/instantiation';
@@ -33,6 +33,8 @@ import { TerminalQuickAccessProvider } from 'vs/workbench/contrib/terminal/brows
3333
import { ToggleViewAction } from 'vs/workbench/browser/actions/layoutActions';
3434
import { IViewsService, IViewDescriptorService } from 'vs/workbench/common/views';
3535
import { IContextKeyService } from 'vs/platform/contextkey/common/contextkey';
36+
import { addClass } from 'vs/base/browser/dom';
37+
import { selectBorder } from 'vs/platform/theme/common/colorRegistry';
3638

3739
async function getCwdForSplit(configHelper: ITerminalConfigHelper, instance: ITerminalInstance, folders?: IWorkspaceFolder[], commandService?: ICommandService): Promise<string | URI | undefined> {
3840
switch (configHelper.config.splitCwd) {
@@ -720,7 +722,7 @@ export class SwitchTerminalActionViewItem extends SelectActionViewItem {
720722
constructor(
721723
action: IAction,
722724
@ITerminalService private readonly terminalService: ITerminalService,
723-
@IThemeService themeService: IThemeService,
725+
@IThemeService private readonly themeService: IThemeService,
724726
@IContextViewService contextViewService: IContextViewService
725727
) {
726728
super(null, action, terminalService.getTabLabels().map(label => <ISelectOptionItem>{ text: label }), terminalService.activeTabIndex, contextViewService, { ariaLabel: nls.localize('terminals', 'Open Terminals.') });
@@ -732,6 +734,14 @@ export class SwitchTerminalActionViewItem extends SelectActionViewItem {
732734
this._register(attachSelectBoxStyler(this.selectBox, themeService));
733735
}
734736

737+
render(container: HTMLElement): void {
738+
super.render(container);
739+
addClass(container, 'switch-terminal');
740+
this._register(attachStylerCallback(this.themeService, { selectBorder }, colors => {
741+
container.style.border = colors.selectBorder ? `1px solid ${colors.selectBorder}` : '';
742+
}));
743+
}
744+
735745
private _updateItems(): void {
736746
const items = this.terminalService.getTabLabels().map(label => <ISelectOptionItem>{ text: label });
737747
items.push({ text: SwitchTerminalActionViewItem.SEPARATOR, isDisabled: true });

0 commit comments

Comments
 (0)