X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=history.c;h=7c64582a70c6fa2b2c45b6c5e837428f4447686c;hb=a3e7cc9b3eb04ffb69fd73b47c06758f73316373;hp=b6c63adf0f32aa7d7b558322b3774751717d1682;hpb=ee432318a4abcbe20b1bf9300a791e0f257d08ee;p=xboard.git diff --git a/history.c b/history.c index b6c63ad..7c64582 100644 --- a/history.c +++ b/history.c @@ -28,9 +28,6 @@ #include #include -#if HAVE_MALLOC_H -#include -#endif #include #include "common.h" @@ -53,6 +50,7 @@ typedef char MoveHistoryString[ MOVE_LEN*2 ]; static int lastFirst = 0; static int lastLast = 0; static int lastCurrent = -1; +static int lastGames; static char lastLastMove[ MOVE_LEN ]; @@ -82,7 +80,7 @@ static Boolean OnlyCurrentPositionChanged() currFirst == lastFirst && currLast == lastLast && currCurrent >= 0 && - TRUE ) + lastGames == storedGames ) { result = TRUE; @@ -108,7 +106,7 @@ static Boolean OneMoveAppended() lastLast == (currLast-1) && lastCurrent == (currCurrent-1) && currCurrent == (currLast-1) && - TRUE ) + lastGames == storedGames ) { result = TRUE; } @@ -177,12 +175,12 @@ void MemoContentUpdated() { int caretPos; - DoHighlight( lastCurrent, FALSE ); - DoHighlight( currCurrent, TRUE ); + if(lastCurrent <= currLast) DoHighlight( lastCurrent, FALSE ); lastFirst = currFirst; lastLast = currLast; lastCurrent = currCurrent; + lastGames = storedGames; lastLastMove[0] = '\0'; if( lastLast > 0 ) { @@ -198,6 +196,7 @@ void MemoContentUpdated() } ScrollToCurrent(caretPos); + DoHighlight( currCurrent, TRUE ); // [HGM] moved last, because in X some scrolling methods spoil highlighting } // back-end. Must be called as double-click call-back on move-history text edit