27afc5a5182ee8614bcb8ec2ef7eaaa1152040a3
kate
  Wed Jan 9 16:06:49 2019 -0800
Add setting to collapse empty subtracks, for Regeneron AA display, but others may find useful. refs #22739

diff --git src/hg/hgTracks/hgTracks.c src/hg/hgTracks/hgTracks.c
index 0e4ed87..d901498 100644
--- src/hg/hgTracks/hgTracks.c
+++ src/hg/hgTracks/hgTracks.c
@@ -4786,36 +4786,38 @@
         safef(buffer, sizeof buffer,  "%s_imgOrd", name->name);
         cartRemove(cart, buffer);
         }
     }
 
 // Construct flatTracks
 for (track = trackList; track != NULL; track = track->next)
     {
     if (tdbIsComposite(track->tdb))
         {
         struct track *subtrack;
         if (isCompositeInAggregate(track))
             flatTracksAdd(&flatTracks,track,cart, orderedWiggles);
         else
             {
+            boolean doCollapse = trackDbSettingOn(track->tdb, "collapseEmptySubtracks");
             for (subtrack = track->subtracks; subtrack != NULL; subtrack = subtrack->next)
                 {
                 if (!isSubtrackVisible(subtrack))
                     continue;
 
-                if (!isLimitedVisHiddenForAllWindows(subtrack))
+                if (!isLimitedVisHiddenForAllWindows(subtrack) && 
+                        !(doCollapse && slCount(subtrack->items) == 0))
                     {
                     flatTracksAdd(&flatTracks,subtrack,cart, orderedWiggles);
                     }
                 }
             }
         }
     else
 	{	
 	if (!isLimitedVisHiddenForAllWindows(track))
 	    {
 	    flatTracksAdd(&flatTracks,track,cart, orderedWiggles);
 	    }
 	}
     }
 flatTracksSort(&flatTracks); // Now we should have a perfectly good flat track list!