cf4ff9e5e58ef209a24d110e3f4daf120f0ccf8a
braney
  Mon Jan 23 17:35:01 2012 -0800
always step up through the ancestors when looking for track handlers (#6499)
diff --git src/hg/hgTracks/container.c src/hg/hgTracks/container.c
index 8a3ce4b..9555a9c 100644
--- src/hg/hgTracks/container.c
+++ src/hg/hgTracks/container.c
@@ -72,31 +72,31 @@
 if (track->parent && track->parent->tdb)
     return trackDbSetting(track->parent->tdb, "container");
 else
     return NULL;
 }
 
 void makeContainerTrack(struct track *track, struct trackDb *tdb)
 /* Construct track subtrack list from trackDb entry for container tracks. */
 {
 // uglyf("track->track=%s, track->table=%s, tdb->track=%s, tdb->table=%s<BR>\n", track->track,track->table, tdb->track, tdb->table);
 /* Wrap tracks around child tdb's, maintaining same heirarchy as in tdb. */
 struct trackDb *subtdb;
 for (subtdb = tdb->subtracks; subtdb != NULL; subtdb = subtdb->next)
     {
     struct track *subtrack = trackFromTrackDb(subtdb);
-    TrackHandler handler = lookupTrackHandler(subtdb->table);
+    TrackHandler handler = lookupTrackHandlerClosestToHome(subtdb);
     if (handler != NULL)
 	handler(subtrack);
     slAddHead(&track->subtracks, subtrack);
     subtrack->parent = track;
     if (subtdb->subtracks != NULL)
 	makeContainerTrack(subtrack, subtdb);
     }
 slSort(&track->subtracks, trackPriCmp);
 
 /* Set methods that may be shared by all containers. */
 track->loadItems = containerLoadItems;
 track->freeItems = containerFree;
 track->drawItems = containerDrawItems;
 track->totalHeight = containerTotalHeight;