From 85728f96bfa1f6bccef9c920fa3eccd4dd3c518e Mon Sep 17 00:00:00 2001 From: H.G.Muller Date: Tue, 5 Apr 2016 18:40:05 +0200 Subject: [PATCH] Adjust menu-text clipping to square size After window sizing has adjusted the square size the text on the menu bar are now clipped to a length that would make the menu bar not exceed the width of the board, similar to what is done at startup. --- gtk/xboard.c | 19 ++++++++++++++----- 1 files changed, 14 insertions(+), 5 deletions(-) diff --git a/gtk/xboard.c b/gtk/xboard.c index aa723b7..5029495 100644 --- a/gtk/xboard.c +++ b/gtk/xboard.c @@ -1690,6 +1690,20 @@ 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++) {} + if(!strchr(appData.boardSize, ',')) { + ASSIGN(appData.boardSize, sizeDefaults[h].name); + initialSquareSize = sizeDefaults[h].squareSize; // used for saving font + } + 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; + gtk_menu_item_set_label((GtkMenuItem *) mainOptions[h].handle, text); + } + } if(sqx != squareSize && !first) { squareSize = sqx; // adopt new square size CreatePNGPieces(); // make newly scaled pieces @@ -1706,11 +1720,6 @@ ReSize (WindowPlacement *wp) DrawPosition(True, NULL); partnerUp = !partnerUp; flipView = !flipView; } - if(!strchr(appData.boardSize, ',')) { - for(h=0; sizeDefaults[h].name && sizeDefaults[h].squareSize > squareSize; h++) {} - ASSIGN(appData.boardSize, sizeDefaults[h].name); - initialSquareSize = sizeDefaults[h].squareSize; // used for saving font - } } static guint delayedDragTag = 0; -- 1.7.0.4