Fix grabbing of selected piece
authorH.G. Muller <h.g.muller@hccnet.nl>
Mon, 26 Aug 2013 12:40:57 +0000 (14:40 +0200)
committerH.G. Muller <h.g.muller@hccnet.nl>
Tue, 27 Aug 2013 07:40:50 +0000 (09:40 +0200)
A second static click on a selected piece should deselect it, but an attempt
to drag an already selected piece should not 'bounce off'. It was already
possible to move a selected piece to another square, but the dragging was
not animated. This is now fixed, by only skipping the code to start dragging
when the second click is part of the only-move double-click for only capture.
(Before it was skipped on any second click.)

backend.c

index 1e9787e..575fc26 100644 (file)
--- a/backend.c
+++ b/backend.c
@@ -7207,7 +7207,7 @@ LeftClick (ClickType clickType, int xPix, int yPix)
            }
            promoDefaultAltered = FALSE;
            MarkTargetSquares(1);
            }
            promoDefaultAltered = FALSE;
            MarkTargetSquares(1);
-          if(!second || appData.oneClick && !OnlyMove(&x, &y, TRUE)) {
+          if(!(second && appData.oneClick && OnlyMove(&x, &y, TRUE))) {
            if (appData.highlightDragging) {
                SetHighlights(x, y, -1, -1);
            } else {
            if (appData.highlightDragging) {
                SetHighlights(x, y, -1, -1);
            } else {
@@ -7257,6 +7257,7 @@ LeftClick (ClickType clickType, int xPix, int yPix)
            second = sweepSelecting = 0;
            fromX = fromY = -1;
            gatingPiece = EmptySquare;
            second = sweepSelecting = 0;
            fromX = fromY = -1;
            gatingPiece = EmptySquare;
+           MarkTargetSquares(1);
            ClearHighlights();
            gotPremove = 0;
            ClearPremoveHighlights();
            ClearHighlights();
            gotPremove = 0;
            ClearPremoveHighlights();