Skip to content

Commit b41dae6

Browse files
authored
White outline on all selected list rows (microsoft#172547)
1 parent aa9c0e8 commit b41dae6

File tree

1 file changed

+19
-10
lines changed

1 file changed

+19
-10
lines changed

src/vs/base/browser/ui/list/listWidget.ts

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
*--------------------------------------------------------------------------------------------*/
55

66
import { IDragAndDropData } from 'vs/base/browser/dnd';
7-
import { createStyleSheet, Dimension, EventHelper } from 'vs/base/browser/dom';
7+
import { asCssValueWithDefault, createStyleSheet, Dimension, EventHelper } from 'vs/base/browser/dom';
88
import { DomEmitter } from 'vs/base/browser/event';
99
import { IKeyboardEvent, StandardKeyboardEvent } from 'vs/base/browser/keyboardEvent';
1010
import { Gesture } from 'vs/base/browser/touch';
@@ -820,10 +820,6 @@ export class DefaultStyleController implements IStyleController {
820820
content.push(`.monaco-list${suffix}:focus .monaco-list-row.selected .codicon { color: ${styles.listActiveSelectionIconForeground}; }`);
821821
}
822822

823-
if (styles.listFocusAndSelectionOutline) {
824-
content.push(`.monaco-list${suffix}:focus .monaco-list-row.selected { outline-color: ${styles.listFocusAndSelectionOutline} !important; }`);
825-
}
826-
827823
if (styles.listFocusAndSelectionBackground) {
828824
content.push(`
829825
.monaco-drag-image,
@@ -869,23 +865,36 @@ export class DefaultStyleController implements IStyleController {
869865
content.push(`.monaco-list${suffix}:not(.drop-target):not(.dragging) .monaco-list-row:hover:not(.selected):not(.focused) { color: ${styles.listHoverForeground}; }`);
870866
}
871867

872-
if (styles.listSelectionOutline) {
873-
content.push(`.monaco-list${suffix} .monaco-list-row.selected { outline: 1px dotted ${styles.listSelectionOutline}; outline-offset: -1px; }`);
868+
/**
869+
* Outlines
870+
*/
871+
const focusAndSelectionOutline = asCssValueWithDefault(styles.listFocusAndSelectionOutline, asCssValueWithDefault(styles.listSelectionOutline, styles.listFocusOutline ?? ''));
872+
if (focusAndSelectionOutline) { // default: listFocusOutline
873+
content.push(`.monaco-list${suffix}:focus .monaco-list-row.focused.selected { outline: 1px solid ${focusAndSelectionOutline}; outline-offset: -1px;}`);
874874
}
875875

876-
if (styles.listFocusOutline) {
876+
if (styles.listFocusOutline) { // default: set
877877
content.push(`
878878
.monaco-drag-image,
879879
.monaco-list${suffix}:focus .monaco-list-row.focused { outline: 1px solid ${styles.listFocusOutline}; outline-offset: -1px; }
880880
.monaco-workbench.context-menu-visible .monaco-list${suffix}.last-focused .monaco-list-row.focused { outline: 1px solid ${styles.listFocusOutline}; outline-offset: -1px; }
881881
`);
882882
}
883883

884-
if (styles.listInactiveFocusOutline) {
884+
const inactiveFocusAndSelectionOutline = asCssValueWithDefault(styles.listSelectionOutline, styles.listInactiveFocusOutline ?? '');
885+
if (inactiveFocusAndSelectionOutline) {
886+
content.push(`.monaco-list${suffix} .monaco-list-row.focused.selected { outline: 1px dotted ${inactiveFocusAndSelectionOutline}; outline-offset: -1px; }`);
887+
}
888+
889+
if (styles.listSelectionOutline) { // default: activeContrastBorder
890+
content.push(`.monaco-list${suffix} .monaco-list-row.selected { outline: 1px dotted ${styles.listSelectionOutline}; outline-offset: -1px; }`);
891+
}
892+
893+
if (styles.listInactiveFocusOutline) { // default: null
885894
content.push(`.monaco-list${suffix} .monaco-list-row.focused { outline: 1px dotted ${styles.listInactiveFocusOutline}; outline-offset: -1px; }`);
886895
}
887896

888-
if (styles.listHoverOutline) {
897+
if (styles.listHoverOutline) { // default: activeContrastBorder
889898
content.push(`.monaco-list${suffix} .monaco-list-row:hover { outline: 1px dashed ${styles.listHoverOutline}; outline-offset: -1px; }`);
890899
}
891900

0 commit comments

Comments
 (0)