X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=backend.c;h=9d659e251dad4b699f4bef8331162ed1b0b3c6c1;hb=31806343176bad28a8ac91ab33bc15a4db8bed7f;hp=b05e795fad070ee37045e0565687242dd84a5eeb;hpb=5f5ea25ea2421cdf6d620d05548c2efa3d81783f;p=xboard.git diff --git a/backend.c b/backend.c index b05e795..9d659e2 100644 --- a/backend.c +++ b/backend.c @@ -6940,6 +6940,13 @@ UserMoveEvent(int fromX, int fromY, int toX, int toY, int promoChar) DrawPosition(FALSE, boards[currentMove]); 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; + } boards[0][toY][toX] = boards[0][fromY][fromX]; if(fromX == BOARD_LEFT-2) { // handle 'moves' out of holdings if(boards[0][fromY][0] != EmptySquare) {