X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=backend.c;h=8545cde1970c1f005c24a787db3cf996cb9a4b39;hb=d789fa10ca55a4a7ca9e4ed35eb38d3f25d1f09b;hp=2ccc54d3ef62d7d1ced0222578a5219d7f8a6f10;hpb=d262a3a81289ce108a1f62a4c31292cb6840b132;p=xboard.git diff --git a/backend.c b/backend.c index 2ccc54d..8545cde 100644 --- a/backend.c +++ b/backend.c @@ -7075,11 +7075,9 @@ UserMoveEvent(int fromX, int fromY, int toX, int toY, int promoChar) return; } else if (toX >= 0 && toY >= 0) { if(!appData.pieceMenu && toX == fromX && toY == fromY && boards[0][rf][ff] != EmptySquare) { - ChessSquare q, p = boards[0][rf][ff]; - if(p >= BlackPawn) p = BLACK_TO_WHITE p; - if(CHUPROMOTED(p) < BlackPawn) p = q = CHUPROMOTED(boards[0][rf][ff]); - else p = CHUDEMOTED (q = boards[0][rf][ff]); - if(PieceToChar(q) == '+') gatingPiece = p; + ChessSquare p = boards[0][rf][ff]; + if(PieceToChar(p) == '+') gatingPiece = CHUDEMOTED(p); else + if(PieceToChar(CHUPROMOTED(p)) =='+') gatingPiece = CHUPROMOTED(p); } boards[0][toY][toX] = boards[0][fromY][fromX]; if(fromX == BOARD_LEFT-2) { // handle 'moves' out of holdings @@ -7095,6 +7093,7 @@ UserMoveEvent(int fromX, int fromY, int toX, int toY, int promoChar) } } else boards[0][fromY][fromX] = gatingPiece; + ClearHighlights(); DrawPosition(FALSE, boards[currentMove]); return; }