Improve behavior of secondary board on sizing main window
[xboard.git] / gtk / xboard.c
index dbb2670..5e2314a 100644 (file)
@@ -175,15 +175,12 @@ extern char *getenv();
 #  define IMG ".png"
    // redefine some defaults
 #  undef ICS_LOGON
-#  undef DATADIR
 #  undef LOCALEDIR
 #  undef SETTINGS_FILE
 #  define ICS_LOGON "Library/Preferences/XboardICS.conf"
-#  define DATADIR dataDir
 #  define LOCALEDIR localeDir
 #  define SETTINGS_FILE masterSettings
 #  define SYNC_MENUBAR gtkosx_application_sync_menubar(theApp)
-   char dataDir[MSG_SIZ]; // for expanding ~~
    char localeDir[MSG_SIZ];
    char masterSettings[MSG_SIZ];
 #else
@@ -892,6 +889,7 @@ main (int argc, char **argv)
         theApp = g_object_new(GTKOSX_TYPE_APPLICATION, NULL);
         snprintf(masterSettings, MSG_SIZ, "%s/Contents/Resources/etc/xboard.conf", path);
         snprintf(dataDir, MSG_SIZ, "%s/Contents/Resources/share/xboard", path);
+        snprintf(manDir, MSG_SIZ, "%s/Contents/Resources/share/man", path);
         snprintf(svgDir, MSG_SIZ, "%s/themes/default", dataDir);
         g_signal_connect(theApp, "NSApplicationOpenFile", G_CALLBACK(StartNewXBoard), NULL);
         g_signal_connect(theApp, "NSApplicationWillTerminate", G_CALLBACK(ExitEvent), NULL);
@@ -915,7 +913,8 @@ main (int argc, char **argv)
     if(argc > 1 && !strcmp(argv[1], "--show-config")) { // [HGM] install: called to print config info
        typedef struct {char *name, *value; } Config;
        static Config configList[] = {
-         { "Datadir", DATADIR },
+         { "Datadir", dataDir },
+         { "Mandir", manDir },
          { "Sysconfdir", SYSCONFDIR },
          { NULL }
        };
@@ -960,7 +959,7 @@ main (int argc, char **argv)
 
     { // [HGM] initstring: kludge to fix bad bug. expand '\n' characters in init string and computer string.
        static char buf[MSG_SIZ];
-       snprintf(buf, MSG_SIZ, appData.sysOpen, DATADIR);
+       snprintf(buf, MSG_SIZ, appData.sysOpen, dataDir);
        ASSIGN(appData.sysOpen, buf); // expand %s in -openCommand to DATADIR (usefull for OS X configuring)
        EscapeExpand(buf, appData.firstInitString);
        appData.firstInitString = strdup(buf);
@@ -1139,7 +1138,7 @@ main (int argc, char **argv)
     boardWidget      = optList[W_BOARD].handle;
     menuBarWidget    = optList[W_MENU].handle;
     dropMenu         = optList[W_DROP].handle;
-    titleWidget = optList[optList[W_TITLE].type != -1 ? W_TITLE : W_SMALL].handle;
+    titleWidget = optList[optList[W_TITLE].type != Skip ? W_TITLE : W_SMALL].handle;
 #ifdef TODO_GTK
     formWidget  = XtParent(boardWidget);
     XtSetArg(args[0], XtNbackground, &timerBackgroundPixel);
@@ -1698,6 +1697,12 @@ ReSize (WindowPlacement *wp)
        if(optList[W_BOARD].max   > w) optList[W_BOARD].max = w;
        if(optList[W_BOARD].value > h) optList[W_BOARD].value = h;
        first = appData.fixedSize;
+       if(twoBoards && shellUp[DummyDlg]) {
+           SlavePopUp(); dualOptions[3].max = 0; DoEvents(); // calls SlaveResize, kludge to force assigning new canvas
+           partnerUp = !partnerUp; flipView = !flipView;
+           DrawPosition(True, NULL);
+           partnerUp = !partnerUp; flipView = !flipView;
+       }
 }
 
 static guint delayedDragTag = 0;