diff --git a/src/vs/code/electron-main/window.ts b/src/vs/code/electron-main/window.ts index bbe6e486f127ac4e3ac032aeea27d8f2025e240b..e79a7400e2020bc35cf18cde5efd5dc3c2c3f3ea 100644 --- a/src/vs/code/electron-main/window.ts +++ b/src/vs/code/electron-main/window.ts @@ -953,7 +953,7 @@ export class CodeWindow implements ICodeWindow { const segments: ITouchBarSegment[] = items.map(item => { let icon: Electron.NativeImage; if (item.iconPath) { - icon = nativeImage.createFromPath(typeof item.iconPath === 'string' ? item.iconPath : item.iconPath.dark); + icon = nativeImage.createFromPath(item.iconPath.dark); if (icon.isEmpty()) { icon = void 0; } diff --git a/src/vs/platform/actions/browser/menuItemActionItem.ts b/src/vs/platform/actions/browser/menuItemActionItem.ts index 787ae98fb148903f77994d27cefbcbaf48754e59..93dad79a5e7c26d0aaad9a20f6384c3d51030e97 100644 --- a/src/vs/platform/actions/browser/menuItemActionItem.ts +++ b/src/vs/platform/actions/browser/menuItemActionItem.ts @@ -127,12 +127,12 @@ export class MenuItemActionItem extends ActionItem { private _itemClassDispose: IDisposable; constructor( - private action: MenuItemAction, + public _action: MenuItemAction, @IKeybindingService private _keybindingService: IKeybindingService, @IMessageService protected _messageService: IMessageService, @IContextMenuService private _contextMenuService: IContextMenuService ) { - super(undefined, action, { icon: !!(action.class || action.item.iconPath), label: !action.class && !action.item.iconPath }); + super(undefined, _action, { icon: !!(_action.class || _action.item.iconPath), label: !_action.class && !_action.item.iconPath }); } protected get _commandAction(): IAction { @@ -150,7 +150,7 @@ export class MenuItemActionItem extends ActionItem { render(container: HTMLElement): void { super.render(container); - this._updateItemClass(this.action.item); + this._updateItemClass(this._action.item); let mouseOver = false; let altDown = false; @@ -200,9 +200,9 @@ export class MenuItemActionItem extends ActionItem { _updateClass(): void { if (this.options.icon) { if (this._commandAction !== this._action) { - this._updateItemClass(this.action.alt.item); + this._updateItemClass(this._action.alt.item); } else if ((this._action).alt) { - this._updateItemClass(this.action.item); + this._updateItemClass(this._action.item); } } } @@ -213,23 +213,14 @@ export class MenuItemActionItem extends ActionItem { if (item.iconPath) { let iconClass: string; - if (typeof item.iconPath === 'string') { - if (MenuItemActionItem.ICON_PATH_TO_CSS_RULES.has(item.iconPath)) { - iconClass = MenuItemActionItem.ICON_PATH_TO_CSS_RULES.get(item.iconPath); - } else { - iconClass = ids.nextId(); - createCSSRule(`.icon.${iconClass}`, `background-image: url("${URI.file(item.iconPath).toString()}")`); - MenuItemActionItem.ICON_PATH_TO_CSS_RULES.set(item.iconPath, iconClass); - } + + if (MenuItemActionItem.ICON_PATH_TO_CSS_RULES.has(item.iconPath.dark)) { + iconClass = MenuItemActionItem.ICON_PATH_TO_CSS_RULES.get(item.iconPath.dark); } else { - if (MenuItemActionItem.ICON_PATH_TO_CSS_RULES.has(item.iconPath.dark)) { - iconClass = MenuItemActionItem.ICON_PATH_TO_CSS_RULES.get(item.iconPath.dark); - } else { - iconClass = ids.nextId(); - createCSSRule(`.icon.${iconClass}`, `background-image: url("${URI.file(item.iconPath.light).toString()}")`); - createCSSRule(`.vs-dark .icon.${iconClass}, .hc-black .icon.${iconClass}`, `background-image: url("${URI.file(item.iconPath.dark).toString()}")`); - MenuItemActionItem.ICON_PATH_TO_CSS_RULES.set(item.iconPath.dark, iconClass); - } + iconClass = ids.nextId(); + createCSSRule(`.icon.${iconClass}`, `background-image: url("${URI.file(item.iconPath.light || item.iconPath.dark).toString()}")`); + createCSSRule(`.vs-dark .icon.${iconClass}, .hc-black .icon.${iconClass}`, `background-image: url("${URI.file(item.iconPath.dark).toString()}")`); + MenuItemActionItem.ICON_PATH_TO_CSS_RULES.set(item.iconPath.dark, iconClass); } this.$e.getHTMLElement().classList.add('icon', iconClass); diff --git a/src/vs/platform/actions/common/actions.ts b/src/vs/platform/actions/common/actions.ts index 40703ce8563296065b8b02ec241d3a86b19cfcb3..f8786606a249d5fa0bc07e43379eeb9ce073ce99 100644 --- a/src/vs/platform/actions/common/actions.ts +++ b/src/vs/platform/actions/common/actions.ts @@ -23,7 +23,7 @@ export interface ICommandAction { id: string; title: string | ILocalizedString; category?: string | ILocalizedString; - iconPath?: string | { light: string; dark: string; }; + iconPath?: { dark: string; light?: string; }; precondition?: ContextKeyExpr; } diff --git a/src/vs/platform/actions/electron-browser/menusExtensionPoint.ts b/src/vs/platform/actions/electron-browser/menusExtensionPoint.ts index be1f3f207050d6ff0c386522ee5e82e56d8e992d..3955afd293e37018f6370fa7cde24417112a3358 100644 --- a/src/vs/platform/actions/electron-browser/menusExtensionPoint.ts +++ b/src/vs/platform/actions/electron-browser/menusExtensionPoint.ts @@ -286,10 +286,10 @@ ExtensionsRegistry.registerExtensionPoint { MenuRegistry.appendMenuItem(MenuId.TouchBarContext, { command: { - id, title, iconPath: URI.parse(require.toUrl(`vs/workbench/parts/debug/electron-browser/media/${icon}`)).fsPath + id, title, iconPath: { dark: URI.parse(require.toUrl(`vs/workbench/parts/debug/electron-browser/media/${icon}`)).fsPath } }, when, group: '9_debug', diff --git a/src/vs/workbench/parts/files/electron-browser/fileActions.contribution.ts b/src/vs/workbench/parts/files/electron-browser/fileActions.contribution.ts index a1c5b1628ef22d7b299cc5074cc0bd2d15db78b1..f365329c68a1a64f16a995629fa2081bbdbe85db 100644 --- a/src/vs/workbench/parts/files/electron-browser/fileActions.contribution.ts +++ b/src/vs/workbench/parts/files/electron-browser/fileActions.contribution.ts @@ -125,7 +125,7 @@ appendSaveConflictEditorTitleAction('workbench.files.action.revertLocalChanges', dark: URI.parse(require.toUrl(`vs/workbench/parts/files/electron-browser/media/undo-inverse.svg`)).fsPath }, -9, revertLocalChangesCommand); -function appendSaveConflictEditorTitleAction(id: string, title: string, iconPath: { dark: string; light: string; }, order: number, command: ICommandHandler): void { +function appendSaveConflictEditorTitleAction(id: string, title: string, iconPath: { dark: string; light?: string; }, order: number, command: ICommandHandler): void { // Command CommandsRegistry.registerCommand(id, command);