c33fb727d29ae43ba03df3c1612990a03224f1ca
chmalee
  Wed Feb 4 12:59:28 2026 -0800
OR together top level track with subtrack level vis when calculating visible tracks. Otherwise our particular values for squish vs pack cause problems when ANDing togethe visibilities, refs #36609

diff --git src/hg/hgTracks/hgTracks.c src/hg/hgTracks/hgTracks.c
index 97deee80d32..029cc5105e2 100644
--- src/hg/hgTracks/hgTracks.c
+++ src/hg/hgTracks/hgTracks.c
@@ -2212,31 +2212,31 @@
 
 struct track *track;
 for (track = trackList; track != NULL; track = track->next)
     {
     if (sameString(trackHubSkipHubName(track->track), "cytoBandIdeo"))
         continue;
     int vis = track->limitedVisSet ? track->limitedVis : track->visibility;
     if (vis)
         {
         int subtrackVis = 0;
         if (track->subtracks)
             {
             struct track *subtrack;
             for (subtrack = track->subtracks; subtrack != NULL; subtrack = subtrack->next)
                 subtrackVis |= subtrack->limitedVisSet ? subtrack->limitedVis : subtrack->visibility;
-            vis &= subtrackVis;
+            vis |= subtrackVis;
             }
         if (vis)
             {
             struct track *clone = CloneVar(track);
             clone->next = NULL;
             slAddHead(&retList, clone);
             }
         }
     }
 // this will be sorted later, no need to reverse or sort now
 return retList;
 }
 
 static void logTrackList(struct dyString *dy, struct track *trackList)
 /* add visibile tracks to dyString, recursively called */