diff --git a/src/cascadia/TerminalCore/Terminal.cpp b/src/cascadia/TerminalCore/Terminal.cpp index 39a0406278..203f158531 100644 --- a/src/cascadia/TerminalCore/Terminal.cpp +++ b/src/cascadia/TerminalCore/Terminal.cpp @@ -98,7 +98,6 @@ void Terminal::UpdateSettings(ICoreSettings settings) _answerbackMessage = settings.AnswerbackMessage(); _wordDelimiters = settings.WordDelimiters(); _suppressApplicationTitle = settings.SuppressApplicationTitle(); - _startingTitle = settings.StartingTitle(); _trimBlockSelection = settings.TrimBlockSelection(); _autoMarkPrompts = settings.AutoMarkPrompts(); _rainbowSuggestions = settings.RainbowSuggestions(); @@ -124,6 +123,11 @@ void Terminal::UpdateSettings(ICoreSettings settings) // Save the changes made above and in UpdateAppearance as the new default render settings. GetRenderSettings().SaveDefaultSettings(); + if (!_startingTitle) + { + _startingTitle = settings.StartingTitle(); + } + if (!_startingTabColor && settings.StartingTabColor()) { _startingTabColor = settings.StartingTabColor().Value(); diff --git a/src/cascadia/TerminalCore/Terminal.hpp b/src/cascadia/TerminalCore/Terminal.hpp index 6c32070e2b..f3330544fc 100644 --- a/src/cascadia/TerminalCore/Terminal.hpp +++ b/src/cascadia/TerminalCore/Terminal.hpp @@ -349,7 +349,7 @@ private: ::Microsoft::Console::VirtualTerminal::TerminalInput _terminalInput; std::optional _title; - std::wstring _startingTitle; + std::optional _startingTitle; std::optional _startingTabColor; std::vector _searchHighlights; diff --git a/src/cascadia/TerminalCore/TerminalApi.cpp b/src/cascadia/TerminalCore/TerminalApi.cpp index 393dd9fe42..3030e3b8ba 100644 --- a/src/cascadia/TerminalCore/TerminalApi.cpp +++ b/src/cascadia/TerminalCore/TerminalApi.cpp @@ -91,8 +91,12 @@ void Terminal::SetWindowTitle(const std::wstring_view title) _assertLocked(); if (!_suppressApplicationTitle) { - _title.emplace(title.empty() ? _startingTitle : title); - _pfnTitleChanged(_title.value()); + _title.reset(); + if (!title.empty()) + { + _title.emplace(title); + } + _pfnTitleChanged(GetConsoleTitle()); } } diff --git a/src/cascadia/TerminalCore/terminalrenderdata.cpp b/src/cascadia/TerminalCore/terminalrenderdata.cpp index 42e24c9f94..6422734f96 100644 --- a/src/cascadia/TerminalCore/terminalrenderdata.cpp +++ b/src/cascadia/TerminalCore/terminalrenderdata.cpp @@ -184,11 +184,18 @@ void Terminal::SelectNewRegion(const til::point coordStart, const til::point coo std::wstring_view Terminal::GetConsoleTitle() const noexcept { _assertLocked(); - if (_title.has_value()) + + if (_title) { return *_title; } - return _startingTitle; + + if (_startingTitle) + { + return *_startingTitle; + } + + return {}; } // Method Description: