Skip to content

Commit

Permalink
Use mica in the SUI if mica is enabled in the theme (#14567)
Browse files Browse the repository at this point in the history
Does what it says on the tin!
  • Loading branch information
zadjii-msft authored Dec 16, 2022
1 parent dbc27ab commit 772ed3a
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 1 deletion.
21 changes: 20 additions & 1 deletion src/cascadia/TerminalSettingsEditor/MainPage.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation
_settingsClone{ settings.Copy() }
{
InitializeComponent();

_UpdateBackgroundForMica();
_InitializeProfilesList();

_colorSchemesPageVM = winrt::make<ColorSchemesPageViewModel>(_settingsClone);
Expand Down Expand Up @@ -102,6 +102,8 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation
_settingsSource = settings;
_settingsClone = settings.Copy();

_UpdateBackgroundForMica();

// Deduce information about the currently selected item
IInspectable lastBreadcrumb;
const auto size = _breadcrumbs.Size();
Expand Down Expand Up @@ -640,4 +642,21 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation
return SettingsNav().Background();
}

// If the theme asks for Mica, then drop out our background, so that we
// can have mica too.
void MainPage::_UpdateBackgroundForMica()

{
const auto& theme = _settingsSource.GlobalSettings().CurrentTheme();

const auto bgKey = (theme.Window() != nullptr && theme.Window().UseMica()) ?
L"SettingsPageMicaBackground" :
L"SettingsPageBackground";

if (const auto bgColor = Resources().TryLookup(winrt::box_value(bgKey)))
{
SettingsNav().Background(winrt::WUX::Media::SolidColorBrush(winrt::unbox_value<Windows::UI::Color>(bgColor)));
}
}

}
2 changes: 2 additions & 0 deletions src/cascadia/TerminalSettingsEditor/MainPage.h
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,8 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation
void _Navigate(hstring clickedItemTag, BreadcrumbSubPage subPage);
void _Navigate(const Editor::ProfileViewModel& profile, BreadcrumbSubPage subPage, const bool focusDeleteButton = false);

void _UpdateBackgroundForMica();

winrt::Microsoft::Terminal::Settings::Editor::ColorSchemesPageViewModel _colorSchemesPageVM{ nullptr };

Windows::UI::Xaml::Data::INotifyPropertyChanged::PropertyChanged_revoker _profileViewModelChangedRevoker;
Expand Down
4 changes: 4 additions & 0 deletions src/cascadia/TerminalSettingsEditor/MainPage.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -31,16 +31,20 @@

<ResourceDictionary x:Key="Dark">
<Color x:Key="SettingsPageBackground">#282828</Color>
<Color x:Key="SettingsPageMicaBackground">#00000000</Color>
</ResourceDictionary>

<ResourceDictionary x:Key="Light">
<Color x:Key="SettingsPageBackground">#F9F9F9</Color>
<Color x:Key="SettingsPageMicaBackground">#00000000</Color>
</ResourceDictionary>

<ResourceDictionary x:Key="HighContrast">
<!-- Define resources for HighContrast mode here -->
<StaticResource x:Key="SettingsPageBackground"
ResourceKey="SystemColorWindowColorBrush" />
<StaticResource x:Key="SettingsPageMicaBackground"
ResourceKey="SystemColorWindowColorBrush" />
</ResourceDictionary>

</ResourceDictionary.ThemeDictionaries>
Expand Down

0 comments on commit 772ed3a

Please sign in to comment.