Skip to content

Commit 772ed3a

Browse files
authored
Use mica in the SUI if mica is enabled in the theme (#14567)
Does what it says on the tin!
1 parent dbc27ab commit 772ed3a

File tree

3 files changed

+26
-1
lines changed

3 files changed

+26
-1
lines changed

src/cascadia/TerminalSettingsEditor/MainPage.cpp

+20-1
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation
5555
_settingsClone{ settings.Copy() }
5656
{
5757
InitializeComponent();
58-
58+
_UpdateBackgroundForMica();
5959
_InitializeProfilesList();
6060

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

105+
_UpdateBackgroundForMica();
106+
105107
// Deduce information about the currently selected item
106108
IInspectable lastBreadcrumb;
107109
const auto size = _breadcrumbs.Size();
@@ -640,4 +642,21 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation
640642
return SettingsNav().Background();
641643
}
642644

645+
// If the theme asks for Mica, then drop out our background, so that we
646+
// can have mica too.
647+
void MainPage::_UpdateBackgroundForMica()
648+
649+
{
650+
const auto& theme = _settingsSource.GlobalSettings().CurrentTheme();
651+
652+
const auto bgKey = (theme.Window() != nullptr && theme.Window().UseMica()) ?
653+
L"SettingsPageMicaBackground" :
654+
L"SettingsPageBackground";
655+
656+
if (const auto bgColor = Resources().TryLookup(winrt::box_value(bgKey)))
657+
{
658+
SettingsNav().Background(winrt::WUX::Media::SolidColorBrush(winrt::unbox_value<Windows::UI::Color>(bgColor)));
659+
}
660+
}
661+
643662
}

src/cascadia/TerminalSettingsEditor/MainPage.h

+2
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,8 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation
6767
void _Navigate(hstring clickedItemTag, BreadcrumbSubPage subPage);
6868
void _Navigate(const Editor::ProfileViewModel& profile, BreadcrumbSubPage subPage, const bool focusDeleteButton = false);
6969

70+
void _UpdateBackgroundForMica();
71+
7072
winrt::Microsoft::Terminal::Settings::Editor::ColorSchemesPageViewModel _colorSchemesPageVM{ nullptr };
7173

7274
Windows::UI::Xaml::Data::INotifyPropertyChanged::PropertyChanged_revoker _profileViewModelChangedRevoker;

src/cascadia/TerminalSettingsEditor/MainPage.xaml

+4
Original file line numberDiff line numberDiff line change
@@ -31,16 +31,20 @@
3131

3232
<ResourceDictionary x:Key="Dark">
3333
<Color x:Key="SettingsPageBackground">#282828</Color>
34+
<Color x:Key="SettingsPageMicaBackground">#00000000</Color>
3435
</ResourceDictionary>
3536

3637
<ResourceDictionary x:Key="Light">
3738
<Color x:Key="SettingsPageBackground">#F9F9F9</Color>
39+
<Color x:Key="SettingsPageMicaBackground">#00000000</Color>
3840
</ResourceDictionary>
3941

4042
<ResourceDictionary x:Key="HighContrast">
4143
<!-- Define resources for HighContrast mode here -->
4244
<StaticResource x:Key="SettingsPageBackground"
4345
ResourceKey="SystemColorWindowColorBrush" />
46+
<StaticResource x:Key="SettingsPageMicaBackground"
47+
ResourceKey="SystemColorWindowColorBrush" />
4448
</ResourceDictionary>
4549

4650
</ResourceDictionary.ThemeDictionaries>

0 commit comments

Comments
 (0)