X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=gtk%2Fxboard.c;h=c68d85f2e58b05cfa777f44bd60802ef23eb40d7;hb=1bcd7e1d10ede3c8116f5b2009283875321a8d48;hp=5029495d72e846269dcc005f73c0098391ec989d;hpb=85728f96bfa1f6bccef9c920fa3eccd4dd3c518e;p=xboard.git diff --git a/gtk/xboard.c b/gtk/xboard.c index 5029495..c68d85f 100644 --- a/gtk/xboard.c +++ b/gtk/xboard.c @@ -1662,7 +1662,7 @@ void ReSize (WindowPlacement *wp) { GtkAllocation a; - int sqx, sqy, w, h, lg = lineGap; + int sqx, sqy, i, w, h, lg = lineGap; static int first = 1; // DisplayBothClocks(); if(wp->width == wpMain.width && wp->height == wpMain.height && !first) return; // not sized @@ -1690,20 +1690,31 @@ ReSize (WindowPlacement *wp) lg = sqx < 37 ? 1 : sqx < 59 ? 2 : sqx < 116 ? 3 : 4; if(sqx == oldSqx + 1 && lg == lineGap + 1) sqx = oldSqx, squareSize = 0; // prevent oscillations, force resize by kludge } - for(h=0; sizeDefaults[h].name && sizeDefaults[h].squareSize > sqx; h++) {} + 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 + if(!fontValid[CLOCK_FONT][initialSquareSize]) fontTable[CLOCK_FONT][initialSquareSize] = CLOCK_FONT_NAME; + appData.clockFont = InsertPxlSize(fontTable[CLOCK_FONT][initialSquareSize], 2*(sizeDefaults[h].clockFontPxlSize+1)/3); + if(!fontValid[MESSAGE_FONT][initialSquareSize]) fontTable[MESSAGE_FONT][initialSquareSize] = DEFAULT_FONT_NAME; + appData.font = InsertPxlSize(fontTable[MESSAGE_FONT][initialSquareSize], sizeDefaults[h].coordFontPxlSize); + DisplayBothClocks(); + ApplyFont(&mainOptions[W_MESSG], NULL); + for(i=1; i<6; i++) ApplyFont(&mainOptions[W_BUTTON+i], NULL); + } if(!strchr(appData.boardSize, ',')) { ASSIGN(appData.boardSize, sizeDefaults[h].name); - initialSquareSize = sizeDefaults[h].squareSize; // used for saving font } +#ifndef OSXAPP if(sizeDefaults[h].tinyLayout != tinyLayout) { // alter clipping of menu names to conform to board width int clip = (tinyLayout = sizeDefaults[h].tinyLayout) + 1; char text[MSG_SIZ]; for(h=1; mainOptions[h].type == DropDown; h++) { strncpy(text, _(mainOptions[h].name), MSG_SIZ); - text[clip + (text[clip-1] == '_')] = NULLCHAR; + if(clip != 1) text[clip + (text[clip-1] == '_')] = NULLCHAR; gtk_menu_item_set_label((GtkMenuItem *) mainOptions[h].handle, text); } } +#endif if(sqx != squareSize && !first) { squareSize = sqx; // adopt new square size CreatePNGPieces(); // make newly scaled pieces