diff --git a/src/cascadia/TerminalSettingsEditor/Appearances.cpp b/src/cascadia/TerminalSettingsEditor/Appearances.cpp index a9add91b5c4..f22c11fbd26 100644 --- a/src/cascadia/TerminalSettingsEditor/Appearances.cpp +++ b/src/cascadia/TerminalSettingsEditor/Appearances.cpp @@ -136,6 +136,11 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation INITIALIZE_BINDABLE_ENUM_SETTING(IntenseTextStyle, IntenseTextStyle, winrt::Microsoft::Terminal::Settings::Model::IntenseStyle, L"Appearance_IntenseTextStyle", L"Content"); } + bool Appearances::ShowIndistinguishableColorsItem() const noexcept + { + return Feature_AdjustIndistinguishableText::IsEnabled(); + } + // Method Description: // - Searches through our list of monospace fonts to determine if the settings model's current font face is a monospace font bool Appearances::UsingMonospaceFont() const noexcept diff --git a/src/cascadia/TerminalSettingsEditor/Appearances.h b/src/cascadia/TerminalSettingsEditor/Appearances.h index cadbfbd5e5f..d8e5afa9965 100644 --- a/src/cascadia/TerminalSettingsEditor/Appearances.h +++ b/src/cascadia/TerminalSettingsEditor/Appearances.h @@ -106,6 +106,8 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation public: Appearances(); + bool ShowIndistinguishableColorsItem() const noexcept; + // font face Windows::Foundation::IInspectable CurrentFontFace() const; diff --git a/src/cascadia/TerminalSettingsEditor/Appearances.idl b/src/cascadia/TerminalSettingsEditor/Appearances.idl index 33e4567fda2..c7bd4706014 100644 --- a/src/cascadia/TerminalSettingsEditor/Appearances.idl +++ b/src/cascadia/TerminalSettingsEditor/Appearances.idl @@ -56,6 +56,8 @@ namespace Microsoft.Terminal.Settings.Editor ProfileViewModel SourceProfile; static Windows.UI.Xaml.DependencyProperty AppearanceProperty { get; }; + Boolean ShowIndistinguishableColorsItem { get; }; + Boolean UsingMonospaceFont { get; }; Boolean ShowAllFonts; diff --git a/src/cascadia/TerminalSettingsEditor/Appearances.xaml b/src/cascadia/TerminalSettingsEditor/Appearances.xaml index 497b7349a2a..b85a38e135c 100644 --- a/src/cascadia/TerminalSettingsEditor/Appearances.xaml +++ b/src/cascadia/TerminalSettingsEditor/Appearances.xaml @@ -158,7 +158,8 @@ + SettingOverrideSource="{x:Bind Appearance.AdjustIndistinguishableColorsOverrideSource, Mode=OneWay}" + Visibility="{x:Bind ShowIndistinguishableColorsItem}"> diff --git a/src/features.xml b/src/features.xml index f2bebd65950..31642a0adfd 100644 --- a/src/features.xml +++ b/src/features.xml @@ -82,4 +82,10 @@ WindowsInbox + + + Feature_AdjustIndistinguishableText + If enabled, the foreground color will, when necessary, be automatically adjusted to make it more visible. + AlwaysDisabled + diff --git a/src/renderer/base/RenderSettings.cpp b/src/renderer/base/RenderSettings.cpp index 4b5a5f18769..0ad8f95eaa3 100644 --- a/src/renderer/base/RenderSettings.cpp +++ b/src/renderer/base/RenderSettings.cpp @@ -186,7 +186,8 @@ std::pair RenderSettings::GetAttributeColors(const TextAttri // We want to nudge the foreground color to make it more perceivable only for the // default color pairs within the color table - if (GetRenderMode(Mode::DistinguishableColors) && + if (Feature_AdjustIndistinguishableText::IsEnabled() && + GetRenderMode(Mode::DistinguishableColors) && !dimFg && (fgTextColor.IsDefault() || fgTextColor.IsLegacy()) && (bgTextColor.IsDefault() || bgTextColor.IsLegacy()))