f38908fcebb67da8bd31f624c77eda230d716185
max
  Fri Jun 21 03:35:44 2024 -0700
not doing itemRgb=on if itemRgb=off, refs #28498

diff --git src/hg/cgilib/bedCart.c src/hg/cgilib/bedCart.c
index 6cbc463..5e667c5 100644
--- src/hg/cgilib/bedCart.c
+++ src/hg/cgilib/bedCart.c
@@ -13,29 +13,35 @@
 #include "bedCart.h"
 #include "hgConfig.h"
 
 
 #if defined(NOT_YET)
 extern struct cart *cart;      /* defined in hgTracks.c or hgTrackUi */
 /*	This option isn't in the cart yet ... maybe later	*/
 #endif
 
 /******	itemRgb - not on by default **************************/
 boolean bedItemRgb(struct trackDb *tdb)
 {
 char *Default="Off";	/* anything different than this will turn it on */
 char *tdbDefault = (char *)NULL;
 
-if (cfgOptionBooleanDefault("alwaysItemRgb", FALSE) && trackDbSettingClosestToHome(tdb, "color")==NULL)
-    return TRUE;
-
 if (tdb)
     tdbDefault = trackDbSettingClosestToHome(tdb, OPT_ITEM_RGB);
 
+// If the hg.conf statement is set on this server to activate the new behavior:
+// only default to "on" if:
+// - "color" is not present at all
+// - itemRgb=off is not set
+if (cfgOptionBooleanDefault("alwaysItemRgb", FALSE) && 
+        trackDbSettingClosestToHome(tdb, "color")==NULL && 
+        !(tdbDefault || sameWord(Default,tdbDefault)))
+    return TRUE;
+
 if (tdbDefault)
     {
     if (differentWord(Default,tdbDefault))
 	return TRUE;
     }
 
 return FALSE;
 }	/*	boolean bedItemRgb(struct trackDb *tdb)	*/