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
\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;