c2c65344c6ae672dbc05e7920049803c3fe29874
tdreszer
  Thu Sep 16 12:29:34 2010 -0700
Fixed tdbVisLimitedByAncestry which caused supertrack contained and visibble tracks to appear hidden in findTracks.  Added composite/view vis reshaping based upon subtrack specific vis.
diff --git src/hg/hgTrackUi/hgTrackUi.c src/hg/hgTrackUi/hgTrackUi.c
index 0d8dd83..c29e85d 100644
--- src/hg/hgTrackUi/hgTrackUi.c
+++ src/hg/hgTrackUi/hgTrackUi.c
@@ -2440,13 +2440,6 @@
     /* For the moment, be a composite... */
     tdbMarkAsComposite(tdb);
     }
-if(tdbIsComposite(tdb))
-    {
-    safef(setting,sizeof(setting),"%s.%s",tdb->track,RESET_TO_DEFAULTS);
-    // NOTE: if you want track vis to not be reset, move to after vis dropdown
-    if(1 == cartUsualInt(cart, setting, 0))
-        cartRemoveAllForTdbAndChildren(cart,tdb);
-    }
 if (ajax && cartOptionalString(cart, "descriptionOnly"))
     {
     //struct trackDb *tdbParent = tdbFillInAncestry(cartString(cart, "db"),tdb);
@@ -2468,6 +2461,15 @@
     cartRemove(cart,"descriptionOnly"); // This is a once only request and should be deleted
     return;
     }
+if(tdbIsComposite(tdb))
+    {
+    safef(setting,sizeof(setting),"%s.%s",tdb->track,RESET_TO_DEFAULTS);
+    // NOTE: if you want track vis to not be reset, move to after vis dropdown
+    if (1 == cartUsualInt(cart, setting, 0))
+        cartRemoveAllForTdbAndChildren(cart,tdb);
+    else if (!ajax) // Overkill on !ajax, because ajax shouldn't be called for a composite
+        cartTdbTreeMatchSubtrackVis(cart,tdb);
+    }
 
 printf("<FORM ACTION=\"%s\" NAME=\""MAIN_FORM"\" METHOD=%s>\n\n",
        hgTracksName(), cartUsualString(cart, "formMethod", "POST"));
@@ -2507,7 +2509,7 @@
         boolean canPack = tdb->canPack;
         if (ajax)
             {
-            vis = tdbVisLimitedByAncestry(cart, tdb, vis, TRUE);  // ajax popups should show currently inherited visability
+            vis = tdbVisLimitedByAncestry(cart, tdb, TRUE);  // ajax popups should show currently inherited visability
             if (tdbIsCompositeChild(tdb))
                 canPack = TRUE;
             }