Adapt lineGap during sizing
[xboard.git] / gtk / xboard.c
index ba49200..a3add4a 100644 (file)
@@ -1454,11 +1454,17 @@ CoDrag (GtkWidget *sh, WindowPlacement *wp)
 void
 ReSize (WindowPlacement *wp)
 {
-       int sqx, sqy, w, h;
+       int sqx, sqy, w, h, lg = lineGap;
        if(wp->width == wpMain.width && wp->height == wpMain.height) return; // not sized
-       sqx = (wp->width  - lineGap - marginW) / BOARD_WIDTH - lineGap;
-       sqy = (wp->height - lineGap - marginH) / BOARD_HEIGHT - lineGap;
+       sqx = (wp->width  - lg - marginW) / BOARD_WIDTH - lg;
+       sqy = (wp->height - lg - marginH) / BOARD_HEIGHT - lg;
        if(sqy < sqx) sqx = sqy;
+       if(appData.overrideLineGap < 0) { // do second iteration with adjusted lineGap
+           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) / BOARD_HEIGHT - lg;
+           if(sqy < sqx) sqx = sqy;
+       }
        if(sqx != squareSize) {
 //printf("new sq size %d (%dx%d)\n", sqx, wp->width, wp->height);
            squareSize = sqx; // adopt new square size
@@ -1817,6 +1823,7 @@ void
 DisplayTimerLabel (Option *opt, char *color, long timer, int highlight)
 {
     GtkWidget *w = (GtkWidget *) opt->handle;
+    GdkColor col;
     char *markup;
     char bgcolor[10];
     char fgcolor[10];
@@ -1834,6 +1841,9 @@ DisplayTimerLabel (Option *opt, char *color, long timer, int highlight)
         strcpy(fgcolor, appData.lowTimeWarningColor);
     }
 
+    gdk_color_parse( bgcolor, &col );
+    gtk_widget_modify_bg(gtk_widget_get_parent(opt->handle), GTK_STATE_NORMAL, &col);
+
     if (appData.clockMode) {
         markup = g_markup_printf_escaped("<span size=\"xx-large\" weight=\"heavy\" background=\"%s\" foreground=\"%s\">%s:%s%s</span>",
                                         bgcolor, fgcolor, color, appData.logoSize && !partnerUp ? "\n" : " ", TimeString(timer));