@@ -15,10 +15,10 @@ import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry';
1515import { StatusbarAlignment , IStatusbarService , IStatusbarEntry , IStatusbarEntryAccessor } from 'vs/workbench/services/statusbar/common/statusbar' ;
1616import { IContextMenuService } from 'vs/platform/contextview/browser/contextView' ;
1717import { 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' ;
1919import { 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' ;
2020import { IWorkspaceContextService , WorkbenchState } from 'vs/platform/workspace/common/workspace' ;
21- import { contrastBorder } from 'vs/platform/theme/common/colorRegistry' ;
21+ import { activeContrastBorder } from 'vs/platform/theme/common/colorRegistry' ;
2222import { isThemeColor } from 'vs/editor/common/editorCommon' ;
2323import { Color } from 'vs/base/common/color' ;
2424import { 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
889889registerThemingParticipant ( ( 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