Skip to content

Commit a298366

Browse files
authored
Merge pull request microsoft#99453 from jeanp413/fix-99350
Fixes focused status bar entry should use orange border when using the high contrast theme
2 parents 6a0b359 + 3c61d84 commit a298366

1 file changed

Lines changed: 28 additions & 13 deletions

File tree

src/vs/workbench/browser/parts/statusbar/statusbarPart.ts

Lines changed: 28 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,10 @@ import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry';
1515
import { StatusbarAlignment, IStatusbarService, IStatusbarEntry, IStatusbarEntryAccessor } from 'vs/workbench/services/statusbar/common/statusbar';
1616
import { IContextMenuService } from 'vs/platform/contextview/browser/contextView';
1717
import { Action, IAction, WorkbenchActionExecutedEvent, WorkbenchActionExecutedClassification } from 'vs/base/common/actions';
18-
import { IThemeService, registerThemingParticipant, IColorTheme, ICssStyleCollector, ThemeColor } from 'vs/platform/theme/common/themeService';
18+
import { IThemeService, registerThemingParticipant, IColorTheme, ICssStyleCollector, ThemeColor, HIGH_CONTRAST } from 'vs/platform/theme/common/themeService';
1919
import { STATUS_BAR_BACKGROUND, STATUS_BAR_FOREGROUND, STATUS_BAR_NO_FOLDER_BACKGROUND, STATUS_BAR_ITEM_HOVER_BACKGROUND, STATUS_BAR_ITEM_ACTIVE_BACKGROUND, STATUS_BAR_PROMINENT_ITEM_FOREGROUND, STATUS_BAR_PROMINENT_ITEM_BACKGROUND, STATUS_BAR_PROMINENT_ITEM_HOVER_BACKGROUND, STATUS_BAR_BORDER, STATUS_BAR_NO_FOLDER_FOREGROUND, STATUS_BAR_NO_FOLDER_BORDER } from 'vs/workbench/common/theme';
2020
import { IWorkspaceContextService, WorkbenchState } from 'vs/platform/workspace/common/workspace';
21-
import { contrastBorder } from 'vs/platform/theme/common/colorRegistry';
21+
import { contrastBorder, activeContrastBorder } from 'vs/platform/theme/common/colorRegistry';
2222
import { isThemeColor } from 'vs/editor/common/editorCommon';
2323
import { Color } from 'vs/base/common/color';
2424
import { addClass, EventHelper, createStyleSheet, addDisposableListener, addClasses, removeClass, EventType, hide, show, removeClasses, isAncestor } from 'vs/base/browser/dom';
@@ -887,19 +887,34 @@ class StatusbarEntryItem extends Disposable {
887887
}
888888

889889
registerThemingParticipant((theme: IColorTheme, collector: ICssStyleCollector) => {
890-
const statusBarItemHoverBackground = theme.getColor(STATUS_BAR_ITEM_HOVER_BACKGROUND);
891-
if (statusBarItemHoverBackground) {
892-
collector.addRule(`.monaco-workbench .part.statusbar > .items-container > .statusbar-item a:hover { background-color: ${statusBarItemHoverBackground}; }`);
893-
collector.addRule(`.monaco-workbench .part.statusbar > .items-container > .statusbar-item a:focus { background-color: ${statusBarItemHoverBackground}; }`);
894-
}
890+
if (theme.type !== HIGH_CONTRAST) {
891+
const statusBarItemHoverBackground = theme.getColor(STATUS_BAR_ITEM_HOVER_BACKGROUND);
892+
if (statusBarItemHoverBackground) {
893+
collector.addRule(`.monaco-workbench .part.statusbar > .items-container > .statusbar-item a:hover { background-color: ${statusBarItemHoverBackground}; }`);
894+
collector.addRule(`.monaco-workbench .part.statusbar > .items-container > .statusbar-item a:focus { background-color: ${statusBarItemHoverBackground}; }`);
895+
}
895896

896-
const statusBarItemActiveBackground = theme.getColor(STATUS_BAR_ITEM_ACTIVE_BACKGROUND);
897-
if (statusBarItemActiveBackground) {
898-
collector.addRule(`.monaco-workbench .part.statusbar > .items-container > .statusbar-item a:active { background-color: ${statusBarItemActiveBackground}; }`);
897+
const statusBarItemActiveBackground = theme.getColor(STATUS_BAR_ITEM_ACTIVE_BACKGROUND);
898+
if (statusBarItemActiveBackground) {
899+
collector.addRule(`.monaco-workbench .part.statusbar > .items-container > .statusbar-item a:active { background-color: ${statusBarItemActiveBackground}; }`);
900+
}
899901
}
900-
const contrastBorderColor = theme.getColor(contrastBorder);
901-
if (contrastBorderColor) {
902-
collector.addRule(`.monaco-workbench .part.statusbar > .items-container > .statusbar-item a:focus { outline: 1px solid ${contrastBorderColor};}`);
902+
903+
const activeContrastBorderColor = theme.getColor(activeContrastBorder);
904+
if (activeContrastBorderColor) {
905+
collector.addRule(`
906+
.monaco-workbench .part.statusbar > .items-container > .statusbar-item a:focus,
907+
.monaco-workbench .part.statusbar > .items-container > .statusbar-item a:active {
908+
outline: 1px solid ${activeContrastBorderColor} !important;
909+
outline-offset: -1px;
910+
}
911+
`);
912+
collector.addRule(`
913+
.monaco-workbench .part.statusbar > .items-container > .statusbar-item a:hover {
914+
outline: 1px dashed ${activeContrastBorderColor};
915+
outline-offset: -1px;
916+
}
917+
`);
903918
}
904919

905920
const statusBarProminentItemForeground = theme.getColor(STATUS_BAR_PROMINENT_ITEM_FOREGROUND);

0 commit comments

Comments
 (0)