Fix detection of screen size GTK
[xboard.git] / gtk / xboard.c
index 95229f0..ef1daa2 100644 (file)
@@ -447,7 +447,7 @@ CreateFonts ()
 void
 ParseColor (int n, char *name)
 { // in XBoard, just copy the color-name string
-  if(colorVariable[n]) *(char**)colorVariable[n] = strdup(name);
+  if(colorVariable[n] && *name == '#') *(char**)colorVariable[n] = strdup(name);
 }
 
 char *
@@ -1028,7 +1028,8 @@ main (int argc, char **argv)
     } else {
         SizeDefaults *szd = sizeDefaults;
         if (*appData.boardSize == NULLCHAR) {
-            GdkScreen *screen = gtk_window_get_screen(GTK_WINDOW(mainwindow)); // TODO: this does not work, as no mainwindow yet
+//            GdkScreen *screen = gtk_window_get_screen(GTK_WINDOW(mainwindow)); // TODO: this does not work, as no mainwindow yet
+            GdkScreen *screen = gdk_screen_get_default();
             guint screenwidth = gdk_screen_get_width(screen);
             guint screenheight = gdk_screen_get_height(screen);
            while (screenwidth  < (szd->minScreenSize*BOARD_WIDTH  + 4)/8 ||
@@ -1182,7 +1183,7 @@ main (int argc, char **argv)
        marginH =  h - a.height - hc; // subtract current clock height, so it can be added back dynamically
     }
 
-    CreateAnyPieces();
+    CreateAnyPieces(1);
     CreateGrid();
 
     if(appData.logoSize)
@@ -2235,7 +2236,7 @@ LoadLogo (ChessProgramState *cps, int n, Boolean ics)
        if(ics) { // [HGM] logo: in ICS mode second can be used for ICS
            sprintf(buf, "%s/%s.png", appData.logoDir, appData.icsHost);
        } else { // engine; look in engine-dir (if any) first
-           snprintf(buf, MDG_SIZ, "%s/logo.png", appData.directory[n]);
+           snprintf(buf, MSG_SIZ, "%s/logo.png", appData.directory[n]);
            if(appData.directory[n] && appData.directory[n][0]
               && strcmp(appData.directory[n], ".") && (f = fopen(buf, "r")) )
                fclose(f);