}
for(i=0; i<2; i++) {
int p;
-printf("Copy pieces\n");
for(p=0; p<=(int)WhiteKing; p++)
pngPieceBitmaps[i][p] = pngPieceBitmaps2[i][p]; // defaults
}
XCopyArea(xDisplay, xpmBoardBitmap[color], dest, wlPieceGC, x0, y0,
squareSize, squareSize, x*fac, y*fac);
} else
+ if(csBoardWindow) {
+ cairo_t *cr = cairo_create (csBoardWindow);
+ char *col;
+ switch (color) {
+ case 0: col = appData.darkSquareColor; break;
+ case 1: col = appData.lightSquareColor; break;
+ case 2: col = "#000000"; break;
+ }
+ SetPen(cr, 2.0, col, 0);
+ cairo_rectangle (cr, x, y, squareSize, squareSize);
+ cairo_fill (cr);
+ cairo_destroy (cr);
+ cr = cairo_create (csBoardBackup);
+ SetPen(cr, 2.0, col, 0);
+ cairo_rectangle (cr, x, y, squareSize, squareSize);
+ cairo_fill (cr);
+ cairo_destroy (cr);
+ } else
if (useImages && useImageSqs) {
Pixmap pm;
switch (color) {
static ChessSquare oldPiece = -1;
static int oldSize;
static cairo_t *pieceSource;
+ extern int doubleClick; // in backend.c
if(piece != oldPiece || squareSize != oldSize) { // try make it faster by only changing cr if we need other piece
if(pieceSource) cairo_destroy (pieceSource);
pieceSource = cairo_create (dest);
cairo_set_source_surface (pieceSource, pngPieceBitmaps[!White(piece)][piece % BlackPawn], 0, 0);
oldPiece = piece; oldSize = squareSize;
}
- cairo_paint(pieceSource);
+ if(doubleClick) cairo_paint_with_alpha (pieceSource, 0.6);
+ else cairo_paint(pieceSource);
}
void