]> de.git.xonotic.org Git - xonotic/netradiant.git/blobdiff - radiant/console.cpp
added buffering to minimise GtkTextBuffer insert calls
[xonotic/netradiant.git] / radiant / console.cpp
index 5c462405074cb35905d73cbf2e86232f0d831cda..f47c66da407c552833d5eadcd768e124e96d328e 100644 (file)
@@ -206,14 +206,17 @@ std::size_t Sys_Print(int level, const char* buf, std::size_t length)
       }
 
 
-      GtkTextBufferOutputStream textBuffer(buffer, &iter, tag);
-      if(!globalCharacterSet().isUTF8())
       {
-        textBuffer << ConvertLocaleToUTF8(StringRange(buf, buf + length));
-      }
-      else
-      {
-        textBuffer << StringRange(buf, buf + length);
+        GtkTextBufferOutputStream textBuffer(buffer, &iter, tag);
+        if(!globalCharacterSet().isUTF8())
+        {
+          BufferedTextOutputStream<GtkTextBufferOutputStream> buffered(textBuffer);
+          buffered << ConvertLocaleToUTF8(StringRange(buf, buf + length));
+        }
+        else
+        {
+          textBuffer << StringRange(buf, buf + length);
+        }
       }
 
       // update console widget immediatly if we're doing something time-consuming