Fix promotionPopDown on new move entry
authorH.G. Muller <h.g.muller@hccnet.nl>
Fri, 13 Apr 2012 17:06:17 +0000 (19:06 +0200)
committerH.G. Muller <h.g.muller@hccnet.nl>
Fri, 13 Apr 2012 17:06:17 +0000 (19:06 +0200)
The promotion popup is non-modal, and old XBoard versions popped it down
as soon as the user clicked the board, so he could just enter a new move
to abort the promotion. This was broken in the new version, because the code
to do the PopDown and abort in HandleUserMove had not been ported.

dialogs.c

index c8c7fc2..726574c 100644 (file)
--- a/dialogs.c
+++ b/dialogs.c
@@ -1911,6 +1911,7 @@ Exp (int n, int x, int y)
        if(but3) MovePV(x, y, lineGap + BOARD_HEIGHT * (squareSize + lineGap));
        return NULL;
     }
        if(but3) MovePV(x, y, lineGap + BOARD_HEIGHT * (squareSize + lineGap));
        return NULL;
     }
+    if(n != 10 && PopDown(PromoDlg)) fromX = fromY = -1; // user starts fiddling with board when promotion dialog is up
     shiftKey = ShiftKeys();
     controlKey = (shiftKey & 0xC) != 0;
     shiftKey = (shiftKey & 3) != 0;
     shiftKey = ShiftKeys();
     controlKey = (shiftKey & 0xC) != 0;
     shiftKey = (shiftKey & 3) != 0;