diff --git a/src/cascadia/TerminalCore/Terminal.cpp b/src/cascadia/TerminalCore/Terminal.cpp index 3480434192c..58e56e98357 100644 --- a/src/cascadia/TerminalCore/Terminal.cpp +++ b/src/cascadia/TerminalCore/Terminal.cpp @@ -87,6 +87,11 @@ void Terminal::CreateFromSettings(winrt::Microsoft::Terminal::Settings::ICoreSet { const COORD viewportSize{ Utils::ClampToShortMax(settings.InitialCols(), 1), Utils::ClampToShortMax(settings.InitialRows(), 1) }; + + if (_suppressApplicationTitle) + { + _title = _startingTitle; + } // TODO:MSFT:20642297 - Support infinite scrollback here, if HistorySize is -1 Create(viewportSize, Utils::ClampToShortMax(settings.HistorySize(), 0), renderTarget); diff --git a/src/cascadia/TerminalCore/TerminalApi.cpp b/src/cascadia/TerminalCore/TerminalApi.cpp index 5876d5d3bed..7d526151a42 100644 --- a/src/cascadia/TerminalCore/TerminalApi.cpp +++ b/src/cascadia/TerminalCore/TerminalApi.cpp @@ -365,25 +365,9 @@ bool Terminal::EraseInDisplay(const DispatchTypes::EraseType eraseType) bool Terminal::SetWindowTitle(std::wstring_view title) { - // Set the title on Terminal load - if (_title.empty()) - { - _title = title; - _pfnTitleChanged(title); - } - - _title = title; - - // If this is removed, the tab object assumes the application title is the title - if (_suppressApplicationTitle) - { - _title = _startingTitle; - } + _title = _suppressApplicationTitle ? _startingTitle : title; - if (_pfnTitleChanged && !_suppressApplicationTitle) - { - _pfnTitleChanged(_title); - } + _pfnTitleChanged(_title); return true; }