diff --git a/src/vs/base/browser/ui/selectBox/selectBox.ts b/src/vs/base/browser/ui/selectBox/selectBox.ts index 54d041f94ce3e088898e256c7c49700aa34138ce..b858eba77cd11bb8c767b70ab08908f467412bd0 100644 --- a/src/vs/base/browser/ui/selectBox/selectBox.ts +++ b/src/vs/base/browser/ui/selectBox/selectBox.ts @@ -15,6 +15,7 @@ export class SelectBox extends Widget { private select: HTMLSelectElement; private options: string[]; private selected: number; + private container: HTMLElement; private _onDidSelect: Emitter; private toDispose: IDisposable[]; @@ -56,6 +57,7 @@ export class SelectBox extends Widget { } public set enabled(value: boolean) { + dom.toggleClass(this.container, 'disabled', !value); this.select.disabled = !value; } @@ -66,6 +68,7 @@ export class SelectBox extends Widget { } public render(container: HTMLElement): void { + this.container = container; dom.addClass(container, 'select-container'); container.appendChild(this.select); this.doSetOptions(); diff --git a/src/vs/workbench/parts/debug/browser/debugActionItems.ts b/src/vs/workbench/parts/debug/browser/debugActionItems.ts index 76f2454fba871c591e4825bcab42f9213ccf8017..bb583362382e8fb127e90d0934bd5a6834bf7ed7 100644 --- a/src/vs/workbench/parts/debug/browser/debugActionItems.ts +++ b/src/vs/workbench/parts/debug/browser/debugActionItems.ts @@ -90,6 +90,7 @@ export class StartDebugActionItem extends EventEmitter implements IActionItem { const config = this.configurationService.getConfiguration('launch'); if (!config || !config.configurations || config.configurations.length === 0) { this.selectBox.setOptions([NO_CONFIGURATIONS_LABEL], 0); + this.selectBox.enabled = false; } else { const options = config.configurations.filter(cfg => !!cfg.name).map(cfg => cfg.name); if (config.compounds) { @@ -98,6 +99,7 @@ export class StartDebugActionItem extends EventEmitter implements IActionItem { const selected = options.indexOf(this.debugService.getViewModel().selectedConfigurationName); this.selectBox.setOptions(options, selected); + this.selectBox.enabled = true; } this.debugService.getViewModel().setSelectedConfigurationName(this.selectBox.getSelected()); diff --git a/src/vs/workbench/parts/debug/browser/media/debugViewlet.css b/src/vs/workbench/parts/debug/browser/media/debugViewlet.css index ecb760d77a4566cb431e8f3e91afc9379c7c7114..3fc1e9222d91553f1639a8674eedc64ff0e5cfa1 100644 --- a/src/vs/workbench/parts/debug/browser/media/debugViewlet.css +++ b/src/vs/workbench/parts/debug/browser/media/debugViewlet.css @@ -78,16 +78,22 @@ cursor: pointer; } +.monaco-workbench .monaco-action-bar .start-debug-action-item .configuration.disabled .select-box { + opacity: 0.7; + font-style: italic; + cursor: initial; +} + /* Hover feedback for start debug action item */ .monaco-workbench > .part > .title > .title-actions .start-debug-action-item .icon:hover, -.monaco-workbench > .part > .title > .title-actions .start-debug-action-item .configuration:hover { +.monaco-workbench > .part > .title > .title-actions .start-debug-action-item .configuration:hover:not(.disabled) { background-color: #ececec; } .vs-dark .monaco-workbench > .part > .title > .title-actions .start-debug-action-item .icon:hover, -.vs-dark .monaco-workbench > .part > .title > .title-actions .start-debug-action-item .configuration:hover, +.vs-dark .monaco-workbench > .part > .title > .title-actions .start-debug-action-item .configuration:hover:not(.disabled), .hc-black .monaco-workbench > .part > .title > .title-actions .start-debug-action-item .icon:hover, -.hc-black .monaco-workbench > .part > .title > .title-actions .start-debug-action-item .configuration:hover { +.hc-black .monaco-workbench > .part > .title > .title-actions .start-debug-action-item .configuration:hover:not(.disabled) { background-color: #2A2D2E; }