From b453c8942116e6fd919c0d59830d41360979feb4 Mon Sep 17 00:00:00 2001 From: codereader Date: Fri, 2 Jul 2021 18:02:01 +0200 Subject: [PATCH] #5660: Fix ConsoleView taking ages to catch up with adding buffered log lines to the text control. --- libs/wxutil/ConsoleView.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/libs/wxutil/ConsoleView.cpp b/libs/wxutil/ConsoleView.cpp index 00a3305d23..72f3967f1f 100644 --- a/libs/wxutil/ConsoleView.cpp +++ b/libs/wxutil/ConsoleView.cpp @@ -47,8 +47,17 @@ void ConsoleView::flushLine() { std::lock_guard lock(_lineBufferMutex); - _lineBuffer.emplace_back(_bufferMode, std::string()); - _lineBuffer.back().second.swap(_buffer); + // If the mode didn't change, put it on the pile + if (!_lineBuffer.empty() && _lineBuffer.back().first == _bufferMode) + { + _lineBuffer.back().second.append(_buffer); + } + else + { + _lineBuffer.emplace_back(_bufferMode, std::move(_buffer)); + } + + _buffer = std::string(); } }