X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=xboard.c;h=377113004e91edcb2d94f0575624869fb7d3480a;hb=8a03ebeed96f122200d439a856083f09e393a2fe;hp=e967626cd659e5cdab906e72bdb17c0ff645f9a8;hpb=3b0e14744af54a3d6e5c57d0dfe7030cd85ecb9a;p=xboard.git diff --git a/xboard.c b/xboard.c index e967626..3771130 100644 --- a/xboard.c +++ b/xboard.c @@ -520,7 +520,7 @@ int squareSize, smallLayout = 0, tinyLayout = 0, fromX = -1, fromY = -1, toX, toY, commentUp = False, analysisUp = False, ICSInputBoxUp = False, askQuestionUp = False, filenameUp = False, promotionUp = False, pmFromX = -1, pmFromY = -1, - editUp = False, errorUp = False, errorExitStatus = -1, lineGap; + editUp = False, errorUp = False, errorExitStatus = -1, lineGap, defaultLineGap; Pixel timerForegroundPixel, timerBackgroundPixel; Pixel buttonForegroundPixel, buttonBackgroundPixel; char *chessDir, *programName, *programVersion, @@ -2086,6 +2086,7 @@ XBoard square size (hint): %d\n\ fprintf(stderr, _("Closest %s size: %d\n"), IMAGE_EXT, squareSize); } } + defaultLineGap = lineGap; if(appData.overrideLineGap >= 0) lineGap = appData.overrideLineGap; /* [HR] height treated separately (hacked) */ @@ -3143,6 +3144,7 @@ void DeleteGCs() XtReleaseGC(shellWidget, highlineGC); XtReleaseGC(shellWidget, lightSquareGC); XtReleaseGC(shellWidget, darkSquareGC); + XtReleaseGC(shellWidget, lineGC); if (appData.monoMode) { if (DefaultDepth(xDisplay, xScreen) == 1) { XtReleaseGC(shellWidget, wbPieceGC); @@ -3177,10 +3179,6 @@ void CreateGCs(int redo) DeleteGCs(); // called a second time; clean up old GCs first } else { // [HGM] grid and font GCs created on first call only gc_values.foreground = XBlackPixel(xDisplay, xScreen); - gc_values.background = XBlackPixel(xDisplay, xScreen); - lineGC = XtGetGC(shellWidget, value_mask, &gc_values); - - gc_values.foreground = XBlackPixel(xDisplay, xScreen); gc_values.background = XWhitePixel(xDisplay, xScreen); coordGC = XtGetGC(shellWidget, value_mask, &gc_values); XSetFont(xDisplay, coordGC, coordFontID); @@ -3191,6 +3189,10 @@ void CreateGCs(int redo) countGC = XtGetGC(shellWidget, value_mask, &gc_values); XSetFont(xDisplay, countGC, countFontID); } + gc_values.foreground = XBlackPixel(xDisplay, xScreen); + gc_values.background = XBlackPixel(xDisplay, xScreen); + lineGC = XtGetGC(shellWidget, value_mask, &gc_values); + if (appData.monoMode) { gc_values.foreground = XWhitePixel(xDisplay, xScreen); gc_values.background = XWhitePixel(xDisplay, xScreen); @@ -3439,6 +3441,8 @@ void CreateXIMPieces() XSynchronize(xDisplay, False); /* Work-around for xlib/xt buffering bug */ } +static VariantClass oldVariant = (VariantClass) -1; // [HGM] pieces: redo every time variant changes + #if HAVE_LIBXPM void CreateXPMBoard(char *s, int kind) { @@ -3597,6 +3601,7 @@ void CreateXPMPieces() xpmJailSquare = xpmLightSquare; fprintf(stderr, _("Done.\n")); } + oldVariant = -1; // kludge to force re-makig of animation masks XSynchronize(xDisplay, False); /* Work-around for xlib/xt buffering bug */ } @@ -8269,11 +8274,10 @@ InitAnimState (anim, info) static void CreateAnimVars () { - static VariantClass old = (VariantClass) -1; // [HGM] pieces: redo every time variant changes XWindowAttributes info; - if (xpmDone && gameInfo.variant == old) return; - if(xpmDone) old = gameInfo.variant; // first time pieces might not be created yet + if (xpmDone && gameInfo.variant == oldVariant) return; + if(xpmDone) oldVariant = gameInfo.variant; // first time pieces might not be created yet XGetWindowAttributes(xDisplay, xBoardWindow, &info); InitAnimState(&game, &info);