diff --git a/src/cascadia/TerminalApp/AppLogic.cpp b/src/cascadia/TerminalApp/AppLogic.cpp index 72d7dae9cf2..fedcbe05944 100644 --- a/src/cascadia/TerminalApp/AppLogic.cpp +++ b/src/cascadia/TerminalApp/AppLogic.cpp @@ -615,6 +615,17 @@ namespace winrt::TerminalApp::implementation return _settings.GlobalSettings().ShowTabsInTitlebar(); } + bool AppLogic::GetInitialAlwaysOnTop() + { + if (!_loadedInitialSettings) + { + // Load settings if we haven't already + LoadSettings(); + } + + return _settings.GlobalSettings().AlwaysOnTop(); + } + // Method Description: // - See Pane::CalcSnappedDimension float AppLogic::CalcSnappedDimension(const bool widthOrHeight, const float dimension) const diff --git a/src/cascadia/TerminalApp/AppLogic.h b/src/cascadia/TerminalApp/AppLogic.h index a6dfd3251cd..077982d8a58 100644 --- a/src/cascadia/TerminalApp/AppLogic.h +++ b/src/cascadia/TerminalApp/AppLogic.h @@ -41,6 +41,7 @@ namespace winrt::TerminalApp::implementation winrt::Windows::UI::Xaml::ElementTheme GetRequestedTheme(); Microsoft::Terminal::Settings::Model::LaunchMode GetLaunchMode(); bool GetShowTabsInTitlebar(); + bool GetInitialAlwaysOnTop(); float CalcSnappedDimension(const bool widthOrHeight, const float dimension) const; Windows::UI::Xaml::UIElement GetRoot() noexcept; diff --git a/src/cascadia/TerminalApp/AppLogic.idl b/src/cascadia/TerminalApp/AppLogic.idl index 683a038bbd9..7056f71b540 100644 --- a/src/cascadia/TerminalApp/AppLogic.idl +++ b/src/cascadia/TerminalApp/AppLogic.idl @@ -47,6 +47,7 @@ namespace TerminalApp Windows.UI.Xaml.ElementTheme GetRequestedTheme(); Microsoft.Terminal.Settings.Model.LaunchMode GetLaunchMode(); Boolean GetShowTabsInTitlebar(); + Boolean GetInitialAlwaysOnTop(); Single CalcSnappedDimension(Boolean widthOrHeight, Single dimension); void TitlebarClicked(); void WindowCloseButtonClicked(); diff --git a/src/cascadia/TerminalApp/TerminalPage.cpp b/src/cascadia/TerminalApp/TerminalPage.cpp index aa5cef1847e..8c16c74cfdb 100644 --- a/src/cascadia/TerminalApp/TerminalPage.cpp +++ b/src/cascadia/TerminalApp/TerminalPage.cpp @@ -239,6 +239,8 @@ namespace winrt::TerminalApp::implementation // // _OnFirstLayout will remove this handler so it doesn't get called more than once. _layoutUpdatedRevoker = _tabContent.LayoutUpdated(winrt::auto_revoke, { this, &TerminalPage::_OnFirstLayout }); + + _isAlwaysOnTop = _settings.GlobalSettings().AlwaysOnTop(); } // Method Description: diff --git a/src/cascadia/WindowsTerminal/AppHost.cpp b/src/cascadia/WindowsTerminal/AppHost.cpp index d0b6a3aa734..5c258b6c59b 100644 --- a/src/cascadia/WindowsTerminal/AppHost.cpp +++ b/src/cascadia/WindowsTerminal/AppHost.cpp @@ -58,7 +58,7 @@ AppHost::AppHost() noexcept : std::placeholders::_1, std::placeholders::_2)); _window->MouseScrolled({ this, &AppHost::_WindowMouseWheeled }); - _window->SetAlwaysOnTop(_logic.AlwaysOnTop()); + _window->SetAlwaysOnTop(_logic.GetInitialAlwaysOnTop()); _window->MakeWindow(); }