src/hg/hgTracks/simpleTracks.c 1.138

1.138 2010/05/07 05:07:57 kent
Code to get container multiWig to go.
Index: src/hg/hgTracks/simpleTracks.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/hgTracks/simpleTracks.c,v
retrieving revision 1.137
retrieving revision 1.138
diff -b -B -U 4 -r1.137 -r1.138
--- src/hg/hgTracks/simpleTracks.c	27 Apr 2010 20:28:28 -0000	1.137
+++ src/hg/hgTracks/simpleTracks.c	7 May 2010 05:07:57 -0000	1.138
@@ -2233,8 +2233,22 @@
 
 chromosomeColorsMade = TRUE;
 }
 
+void rFindSubtrackColors(struct hvGfx *hvg, struct track *trackList)
+/* Find colors of subtracks and their children */
+{
+struct track *subtrack;
+for (subtrack = trackList; subtrack != NULL; subtrack = subtrack->next)
+    {
+    if (!isSubtrackVisible(subtrack))
+ 	continue;
+    subtrack->ixColor = hvGfxFindRgb(hvg, &subtrack->color);
+    subtrack->ixAltColor = hvGfxFindRgb(hvg, &subtrack->altColor);
+    rFindSubtrackColors(hvg, subtrack->subtracks);
+    }
+}
+
 void findTrackColors(struct hvGfx *hvg, struct track *trackList)
 /* Find colors to draw in. */
 {
 struct track *track;
@@ -2243,20 +2257,9 @@
     if (track->limitedVis != tvHide)
 	{
 	track->ixColor = hvGfxFindRgb(hvg, &track->color);
 	track->ixAltColor = hvGfxFindRgb(hvg, &track->altColor);
-        if (tdbIsComposite(track->tdb))
-            {
-	    struct track *subtrack;
-            for (subtrack = track->subtracks; subtrack != NULL;
-                         subtrack = subtrack->next)
-                {
-                if (!isSubtrackVisible(subtrack))
-                    continue;
-                subtrack->ixColor = hvGfxFindRgb(hvg, &subtrack->color);
-                subtrack->ixAltColor = hvGfxFindRgb(hvg, &subtrack->altColor);
-                }
-            }
+	rFindSubtrackColors(hvg, track->subtracks);
         }
     }
 }
 
@@ -9022,9 +9025,9 @@
 	tg->height = 0;
 	tg->limitedVis = tvHide;
 	return tvHide;
 	}
-    if (trackIsCompositeWithSubtracks(tg))
+    if (tg->subtracks != NULL)
 	{
 	struct track *subtrack;
 	int subCnt = subtrackCount(tg->subtracks);
 	maxHeight = maxHeight * max(subCnt,1);