diff --git a/src/cascadia/TerminalControl/ControlAppearance.h b/src/cascadia/TerminalControl/ControlAppearance.h index b83e50d1b..b806a014d 100644 --- a/src/cascadia/TerminalControl/ControlAppearance.h +++ b/src/cascadia/TerminalControl/ControlAppearance.h @@ -32,6 +32,11 @@ namespace winrt::Microsoft::Terminal::Control::implementation CORE_APPEARANCE_SETTINGS(COPY_SETTING) CONTROL_APPEARANCE_SETTINGS(COPY_SETTING) #undef COPY_SETTING + + for (int32_t i = 0; i < _ColorTable.size(); i++) + { + _ColorTable[i] = appearance.GetColorTableEntry(i); + } } }; } diff --git a/src/cascadia/TerminalControl/ControlSettings.h b/src/cascadia/TerminalControl/ControlSettings.h index 9a7d94cb7..b7759f007 100644 --- a/src/cascadia/TerminalControl/ControlSettings.h +++ b/src/cascadia/TerminalControl/ControlSettings.h @@ -15,7 +15,7 @@ using IFontAxesMap = winrt::Windows::Foundation::Collections::IMap { #define SETTINGS_GEN(type, name, ...) WINRT_PROPERTY(type, name, __VA_ARGS__); CORE_SETTINGS(SETTINGS_GEN) @@ -42,5 +42,18 @@ namespace winrt::Microsoft::Terminal::Control::implementation winrt::com_ptr UnfocusedAppearance() { return _unfocusedAppearance; } winrt::com_ptr FocusedAppearance() { return _focusedAppearance; } + +#define APPEARANCE_GEN(type, name, ...) \ + type name() const noexcept { return _focusedAppearance->name(); } \ + void name(const type& value) noexcept { _focusedAppearance->name(value); } + + CORE_APPEARANCE_SETTINGS(APPEARANCE_GEN) + CONTROL_APPEARANCE_SETTINGS(APPEARANCE_GEN) +#undef APPEARANCE_GEN + + winrt::Microsoft::Terminal::Core::Color GetColorTableEntry(int32_t index) noexcept + { + return _focusedAppearance->GetColorTableEntry(index); + } }; } diff --git a/src/cascadia/TerminalControl/TermControl.cpp b/src/cascadia/TerminalControl/TermControl.cpp index 0667ffa24..98dc7054b 100644 --- a/src/cascadia/TerminalControl/TermControl.cpp +++ b/src/cascadia/TerminalControl/TermControl.cpp @@ -274,7 +274,7 @@ namespace winrt::Microsoft::Terminal::Control::implementation return; } - _core.UpdateSettings(newSettings); // TODO! + _core.UpdateSettings(newSettings.try_as()); // TODO! // Update our control settings _ApplyUISettings(newSettings); @@ -2373,7 +2373,7 @@ namespace winrt::Microsoft::Terminal::Control::implementation void TermControl::UnfocusedAppearance(IControlAppearance newAppearance) { - _settings = winrt::make_self(_settings, newAppearance); + _settings = winrt::make_self(_settings.try_as(), newAppearance); } Windows::Foundation::IReference TermControl::TabColor() noexcept