a3c950ce4269f792a152993845f39140e6d3b2d0
tdreszer
  Wed Oct 13 21:03:07 2010 -0700
Freaking wierd bug of cart values disappearing and reappearing turned out to be browser cache
diff --git src/hg/hgTracks/hgTracks.c src/hg/hgTracks/hgTracks.c
index e78ae75..2e7bccf 100644
--- src/hg/hgTracks/hgTracks.c
+++ src/hg/hgTracks/hgTracks.c
@@ -4273,19 +4273,19 @@
 struct track *track = trackList;
 for (;track != NULL; track = track->next)
     {
-    boolean cleanedUp = FALSE;
+    boolean shapedByubtrackOverride = FALSE;
+    boolean cleanedByContainerSettings = FALSE;
 
     if (tdbIsContainer(track->tdb))
         {
-        cleanedUp = cartTdbTreeMatchSubtrackVis(cart,track->tdb);
-        if(cleanedUp)
-            track->visibility = tdbVisLimitedByAncestry(cart,track->tdb,FALSE);
+        shapedByubtrackOverride = cartTdbTreeMatchSubtrackVis(cart,track->tdb);
+        if(shapedByubtrackOverride)
+            track->visibility = tdbVisLimitedByAncestors(cart,track->tdb,TRUE,TRUE);
         }
 
-    if (cartTdbTreeCleanupOverrides(track->tdb,newCart,oldVars))
-        cleanedUp = TRUE; // 2 ways to clean up!
+    cleanedByContainerSettings = cartTdbTreeCleanupOverrides(track->tdb,newCart,oldVars);
 
-    if (cleanedUp && tdbIsSuperTrackChild(track->tdb))  // Either cleanup may require supertrack intervention
+    if ((shapedByubtrackOverride || cleanedByContainerSettings) && tdbIsSuperTrackChild(track->tdb))  // Either cleanup may require supertrack intervention
         { // Need to update track visibility
         // Unfortunately, since supertracks are not in trackList, this occurs on superChildren,
         // So now we need to find the supertrack and take changed cart values of its children