Fix checkmarking of OS X menu items
authorH.G.Muller <hgm@hgm-xboard.(none)>
Thu, 11 Sep 2014 21:10:59 +0000 (23:10 +0200)
committerH.G.Muller <hgm@hgm-xboard.(none)>
Thu, 11 Sep 2014 21:21:32 +0000 (23:21 +0200)
The routine MarkMenuItem() was moved to xboard.c, where it can see
the OSX-specific #defines, and calls to sync_menu_bar were added
to it, and to EnableNamendMenuItem().

gtk/xboard.c
gtk/xoptions.c

index 532df06..d8fcbaa 100644 (file)
@@ -180,11 +180,13 @@ extern char *getenv();
 #  define ICS_LOGON "Library/Preferences/XboardICS.conf"
 #  define DATADIR dataDir
 #  define SETTINGS_FILE masterSettings
+#  define SYNC_MENUBAR gtkosx_application_sync_menubar(theApp)
    char dataDir[MSG_SIZ]; // for expanding ~~
    char masterSettings[MSG_SIZ];
 #else
 #  define SLASH '/'
 #  define IMG ".svg"
+#  define SYNC_MENUBAR
 #endif
 
 #ifdef __EMX__
@@ -1465,12 +1467,24 @@ FindFont (char *pattern, int targetPxlSize)
 #endif
 #endif
 
+void
+MarkMenuItem (char *menuRef, int state)
+{
+    MenuItem *item = MenuNameToItem(menuRef);
+
+    if(item && item->handle) {
+        ((GtkCheckMenuItem *) (item->handle))->active = state;
+    }
+    SYNC_MENUBAR;
+}
+
 void
 EnableNamedMenuItem (char *menuRef, int state)
 {
     MenuItem *item = MenuNameToItem(menuRef);
 
     if(item && item->handle) gtk_widget_set_sensitive(item->handle, state);
+    SYNC_MENUBAR;
 }
 
 void
index 8b4c98a..5df840b 100644 (file)
@@ -138,16 +138,6 @@ static Arg formArgs[] = {
 };
 #endif
 
-void
-MarkMenuItem (char *menuRef, int state)
-{
-    MenuItem *item = MenuNameToItem(menuRef);
-
-    if(item && item->handle) {
-        ((GtkCheckMenuItem *) (item->handle))->active = state;
-    }
-}
-
 void GetWidgetTextGTK(GtkWidget *w, char **buf)
 {
     GtkTextIter start;