X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=history.c;h=7c64582a70c6fa2b2c45b6c5e837428f4447686c;hb=a3e7cc9b3eb04ffb69fd73b47c06758f73316373;hp=109c9fb2ae67bd50a99bf3dce99d1a25fcd46397;hpb=0ea1b434ac6becf79c75d85ba27de5b89666a7c3;p=xboard.git diff --git a/history.c b/history.c index 109c9fb..7c64582 100644 --- a/history.c +++ b/history.c @@ -28,7 +28,6 @@ #include #include -#include #include #include "common.h" @@ -51,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 ]; @@ -80,7 +80,7 @@ static Boolean OnlyCurrentPositionChanged() currFirst == lastFirst && currLast == lastLast && currCurrent >= 0 && - TRUE ) + lastGames == storedGames ) { result = TRUE; @@ -106,7 +106,7 @@ static Boolean OneMoveAppended() lastLast == (currLast-1) && lastCurrent == (currCurrent-1) && currCurrent == (currLast-1) && - TRUE ) + lastGames == storedGames ) { result = TRUE; } @@ -175,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 ) { @@ -196,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