Skip to content

Commit 2ff7e26

Browse files
committed
microsoft#2882 ui affordance for disablement
1 parent 1e70daa commit 2ff7e26

3 files changed

Lines changed: 12 additions & 3 deletions

File tree

src/vs/workbench/parts/extensions/electron-browser/extensionsActions.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -398,7 +398,7 @@ export class EnableAction extends Action {
398398
return;
399399
}
400400

401-
this.enabled = this.extension.type !== LocalExtensionType.System && !this.extension.reload && this.extensionsRuntimeService.canEnable(this.extension.identifier);
401+
this.enabled = this.extension.type !== LocalExtensionType.System && !this.extension.reload && ExtensionState.Disabled === this.extension.state && this.extensionsRuntimeService.canEnable(this.extension.identifier);
402402
this.class = this.enabled ? EnableAction.EnabledClass : EnableAction.DisabledClass;
403403
}
404404

src/vs/workbench/parts/extensions/electron-browser/extensionsList.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
'use strict';
77

8-
import { append, $, addClass, removeClass } from 'vs/base/browser/dom';
8+
import { append, $, addClass, removeClass, toggleClass } from 'vs/base/browser/dom';
99
import { IDisposable, dispose } from 'vs/base/common/lifecycle';
1010
import { Action } from 'vs/base/common/actions';
1111
import { ActionBar } from 'vs/base/browser/ui/actionbar/actionbar';
@@ -15,7 +15,7 @@ import { IDelegate } from 'vs/base/browser/ui/list/list';
1515
import { IPagedRenderer } from 'vs/base/browser/ui/list/listPaging';
1616
import { once } from 'vs/base/common/event';
1717
import { domEvent } from 'vs/base/browser/event';
18-
import { IExtension } from '../common/extensions';
18+
import { IExtension, ExtensionState } from '../common/extensions';
1919
import { CombinedInstallAction, UpdateAction, EnableAction, DisableAction, BuiltinStatusLabelAction, ReloadAction } from './extensionsActions';
2020
import { Label, RatingsWidget, InstallWidget } from './extensionsWidgets';
2121
import { EventType } from 'vs/base/common/events';
@@ -126,6 +126,8 @@ export class Renderer implements IPagedRenderer<IExtension, ITemplateData> {
126126

127127
data.extensionDisposables = dispose(data.extensionDisposables);
128128

129+
toggleClass(data.element, 'disabled', ExtensionState.Disabled === extension.state);
130+
129131
const onError = once(domEvent(data.icon, 'error'));
130132
onError(() => data.icon.src = extension.iconUrlFallback, null, data.extensionDisposables);
131133
data.icon.src = extension.iconUrl;

src/vs/workbench/parts/extensions/electron-browser/media/extensionsViewlet.css

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,13 @@
140140
line-height: 15px;
141141
}
142142

143+
.extensions-viewlet > .extensions .extension.disabled > .icon,
144+
.extensions-viewlet > .extensions .extension.disabled > .details > .header-container,
145+
.extensions-viewlet > .extensions .extension.disabled > .details > .description,
146+
.extensions-viewlet > .extensions .extension.disabled > .details > .footer > .author {
147+
opacity: 0.5;
148+
}
149+
143150
.extensions-viewlet > .extensions .extension .ellipsis {
144151
overflow: hidden;
145152
white-space: nowrap;

0 commit comments

Comments
 (0)