summaryrefslogtreecommitdiffstats
path: root/GUI
diff options
context:
space:
mode:
Diffstat (limited to 'GUI')
-rw-r--r--GUI/GUI/GUI/Logging.cpp13
1 files changed, 7 insertions, 6 deletions
diff --git a/GUI/GUI/GUI/Logging.cpp b/GUI/GUI/GUI/Logging.cpp
index f6ad3ab..6983a40 100644
--- a/GUI/GUI/GUI/Logging.cpp
+++ b/GUI/GUI/GUI/Logging.cpp
@@ -51,13 +51,14 @@ void Logging::ThreadLogger::Drain()
// Constrain wxTextCtrl's to a few hundred lines to keep memory usage /
// general snappiness in check.
if (frame) {
- wxString allText = frame->GetValue();
- wxArrayString lines = wxStringTokenize(allText, "\n");
- size_t count = lines.GetCount();
- constexpr int kHalfMaxLines = 1000;
- if (count > kHalfMaxLines * 2) {
+ constexpr int kHalfMaxChars = 50 * 1000;
+ int nchars;
+ while ((nchars = frame->GetLastPosition()) > kHalfMaxChars) {
+ wxString allText = frame->GetValue();
+ wxArrayString lines = wxStringTokenize(allText, "\n");
// Keep only the last kHalfMaxLines lines.
- size_t linesToRemove = count - kHalfMaxLines;
+ size_t nlines = lines.GetCount();
+ size_t linesToRemove = nlines / 2;
// Remove lines from the beginning
lines.RemoveAt(0, linesToRemove);