Adjust menu-text clipping to square size
authorH.G.Muller <hgm@hgm-xboard.(none)>
Tue, 5 Apr 2016 16:40:05 +0000 (18:40 +0200)
committerH.G.Muller <hgm@hgm-xboard.(none)>
Sun, 17 Apr 2016 08:24:57 +0000 (10:24 +0200)
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

index aa723b7..5029495 100644 (file)
@@ -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;