X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=history.c;h=7c64582a70c6fa2b2c45b6c5e837428f4447686c;hb=ca6061cbffe88ff5eb2332e733e0a534b89cc5e7;hp=6773133acb25836dfa8379bf8bb5341512de52fa;hpb=7b1579c574c06f880cc6c01874416dde0374aab6;p=xboard.git diff --git a/history.c b/history.c index 6773133..7c64582 100644 --- a/history.c +++ b/history.c @@ -50,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 ]; @@ -79,7 +80,7 @@ static Boolean OnlyCurrentPositionChanged() currFirst == lastFirst && currLast == lastLast && currCurrent >= 0 && - TRUE ) + lastGames == storedGames ) { result = TRUE; @@ -105,7 +106,7 @@ static Boolean OneMoveAppended() lastLast == (currLast-1) && lastCurrent == (currCurrent-1) && currCurrent == (currLast-1) && - TRUE ) + lastGames == storedGames ) { result = TRUE; } @@ -174,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 ) { @@ -195,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