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()