GtkAllocation a;
int sqx, sqy, w, h, hc, lg = lineGap;
static int first = 1;
- gtk_widget_get_allocation(optList[W_WHITE].handle, &a);
- hc = a.height; // clock height can depend on single / double line clock text!
-// if(clockKludge && hc != clockKludge) wp->height += hc - clockKludge, clockKludge = 0;
- wpMain.height = BOARD_HEIGHT * (squareSize + lineGap) + lineGap + marginH + hc;
- if(wp->width == wpMain.width && wp->height == wpMain.height) return; // not sized
- sqx = (wp->width - lg - marginW) / BOARD_WIDTH - lg;
- sqy = (wp->height - lg - marginH - hc) / BOARD_HEIGHT - lg;
+ gtk_widget_get_allocation(optList[W_BOARD].handle, &a);
+ if(wp->width == wpMain.width && wp->height == wpMain.height && !first) return; // not sized
+ sqx = (a.width - lg) / BOARD_WIDTH - lg;
+ sqy = (a.height - lg) / BOARD_HEIGHT - lg;
if(sqy < sqx) sqx = sqy;
if(sqx < 20) return;
if(appData.overrideLineGap < 0) { // do second iteration with adjusted lineGap
int oldSqx = sqx;
lg = lineGap = sqx < 37 ? 1 : sqx < 59 ? 2 : sqx < 116 ? 3 : 4;
- sqx = (wp->width - lg - marginW) / BOARD_WIDTH - lg;
- sqy = (wp->height - lg - marginH - hc) / BOARD_HEIGHT - lg;
+ sqx = (a.width - lg) / BOARD_WIDTH - lg;
+ sqy = (a.height - lg) / BOARD_HEIGHT - lg;
if(sqy < sqx) sqx = sqy;
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
if(busy) return;
busy = 1;
-// GetActualPlacement(shellWidget, &wpNew);
+ GetActualPlacement(shellWidget, &wpNew);
if(wpNew.x == wpMain.x && wpNew.y == wpMain.y && // not moved
wpNew.width == wpMain.width && wpNew.height == wpMain.height) { // not sized
busy = 0; return; // false alarm