here is a patch, as suggested by Zack Weinberg
diff -u tipptrainer-0.6.0/src/outputcontrol.cpp tipptrainer-0.6.0-new/src/outputcontrol.cpp
--- tipptrainer-0.6.0/src/outputcontrol.cpp	2004-08-08 16:09:02.000000000 +0200
+++ tipptrainer-0.6.0-new/src/outputcontrol.cpp	2009-10-11 05:04:02.000000000 +0200
@@ -55,7 +55,7 @@
 		     *(this->localfont));
   SetDefaultStyle(attribs);
   SetStyle(0,GetLastPosition(),attribs);
-  highlightChar();
+  highlightChar(true);
 }
 
 #include "commonElements.H"
@@ -82,7 +82,7 @@
 
 void TtOutputControl::highlightFirstChar () {
   this->highlightCharPos = 0;
-  highlightChar();
+  highlightChar(true);
 }
 
 void TtOutputControl::highlightNextChar (unsigned int i, bool newline) {
@@ -91,14 +91,14 @@
   } else {
     this->highlightCharPos += i;
   }
-  highlightChar();  
+  highlightChar(newline);  
 }
 
 #include <algorithm>
 #ifndef __VISUALC__
   using std::min;
 #endif
-void TtOutputControl::highlightChar () {
+void TtOutputControl::highlightChar (bool newline) {
   if (highlightCharPos >= 0) {
     LessonController* l = Hauptfenster::getPtr()->getLessonController();
     size_t diffPos = this->highlightCharPos;
@@ -118,10 +118,12 @@
 	}
       }
     }
-    Freeze();
-    ShowPosition(diffPos); //enough for wxGTK
-    SetInsertionPoint(diffPos+1); //needed for wxMSW
-    Thaw();
+    if(newline){
+      Freeze();
+      ShowPosition(diffPos); //enough for wxGTK
+      SetInsertionPoint(diffPos+1); //needed for wxMSW
+      Thaw();
+    }
     SetSelection(this->highlightCharPos,this->highlightCharPos+1);
   }
 }
diff -u tipptrainer-0.6.0/src/outputcontrol.h tipptrainer-0.6.0-new/src/outputcontrol.h
--- tipptrainer-0.6.0/src/outputcontrol.h	2004-08-08 16:09:02.000000000 +0200
+++ tipptrainer-0.6.0-new/src/outputcontrol.h	2009-10-11 04:54:11.000000000 +0200
@@ -53,7 +53,7 @@
   long highlightCharPos;
   wxUChar specialLineEnd;
 
-  void highlightChar ();
+  void highlightChar (bool newline);
   void updateLook ();
 
   DECLARE_EVENT_TABLE()

Reply via email to