From bf5b3665f905ef0c595b2eed408b9798e409a21d Mon Sep 17 00:00:00 2001 From: H.G.Muller Date: Wed, 6 Apr 2016 14:25:19 +0200 Subject: [PATCH] Conditionally replace 'other-window' fonts on sizing Fonts not used in the main window (i.e. other than clock, coord and message) are now also adjusted on sizing, but not when this would mean replacing an explicitly specified font by a default one. If we size to a boardSize for which a font was specified earlier, we always switch to the latter, and if we were merely using the default font for the old size we switch to the default font for the new size rather than keeping it. --- gtk/xboard.c | 17 +++++++++++++---- 1 files changed, 13 insertions(+), 4 deletions(-) diff --git a/gtk/xboard.c b/gtk/xboard.c index df1f18e..6fd5ea4 100644 --- a/gtk/xboard.c +++ b/gtk/xboard.c @@ -444,9 +444,13 @@ SetFontDefaults () } void -ChangeFont (char **font, int fnr, int size, char *def, int pix) +ChangeFont (int force, char **font, int fnr, int size, char *def, int pix) { - if(!fontValid[fnr][size]) { ASSIGN(fontTable[fnr][size], def); fontIsSet[fnr] = False; } // use default + if(!fontValid[fnr][size]) { + if(fontIsSet[fnr] && !force) return; // unless forced we do not replace an explicitly specified font by a default + ASSIGN(fontTable[fnr][size], def); // use default + fontIsSet[fnr] = False; + } FREE(*font); *font = InsertPxlSize(fontTable[fnr][size], pix); } @@ -1700,8 +1704,13 @@ ReSize (WindowPlacement *wp) for(h=0; sizeDefaults[h].name && sizeDefaults[h].squareSize*8 > sqx*BOARD_WIDTH; h++) {} if(initialSquareSize != sizeDefaults[h].squareSize) { // boardSize changed initialSquareSize = sizeDefaults[h].squareSize; // used for saving font - ChangeFont(&appData.clockFont, CLOCK_FONT, initialSquareSize, CLOCK_FONT_NAME, 2*(sizeDefaults[h].clockFontPxlSize+1)/3); - ChangeFont(&appData.font, MESSAGE_FONT, initialSquareSize, DEFAULT_FONT_NAME, sizeDefaults[h].coordFontPxlSize); + ChangeFont(1, &appData.clockFont, CLOCK_FONT, initialSquareSize, CLOCK_FONT_NAME, 2*(sizeDefaults[h].clockFontPxlSize+1)/3); + ChangeFont(1, &appData.font, MESSAGE_FONT, initialSquareSize, DEFAULT_FONT_NAME, sizeDefaults[h].coordFontPxlSize); + ChangeFont(0, &appData.icsFont, CONSOLE_FONT, initialSquareSize, CONSOLE_FONT_NAME, sizeDefaults[h].coordFontPxlSize); + ChangeFont(0, &appData.tagsFont, EDITTAGS_FONT, initialSquareSize, TAGS_FONT_NAME, sizeDefaults[h].coordFontPxlSize); + ChangeFont(0, &appData.commentFont, COMMENT_FONT, initialSquareSize, COMMENT_FONT_NAME, sizeDefaults[h].coordFontPxlSize); + ChangeFont(0, &appData.gameListFont, GAMELIST_FONT, initialSquareSize, GAMELIST_FONT_NAME, sizeDefaults[h].coordFontPxlSize); + ChangeFont(0, &appData.coordFont, MOVEHISTORY_FONT, initialSquareSize, HISTORY_FONT_NAME, sizeDefaults[h].coordFontPxlSize); DisplayBothClocks(); ApplyFont(&mainOptions[W_MESSG], NULL); for(i=1; i<6; i++) ApplyFont(&mainOptions[W_BUTTON+i], NULL); -- 1.7.0.4