f1d2ee5e0e45a31e08d56f8cc104f3c57a6d32f2
braney
  Thu Sep 26 14:29:52 2024 -0700
fix a couple of bugs in the 32K redraw code.

diff --git src/hg/hgTracks/hgTracks.c src/hg/hgTracks/hgTracks.c
index d281d45..e521c83 100644
--- src/hg/hgTracks/hgTracks.c
+++ src/hg/hgTracks/hgTracks.c
@@ -5124,40 +5124,41 @@
             addPreFlatTrack(&preFlatTracks, track);
         else
             {
             boolean doHideEmpties = doHideEmptySubtracksNoMultiBed(cart, track);
                 // If multibed was found, it has been used to suppress loading,
                 // and subtracks lacking items in window are already set hidden
             for (subtrack = track->subtracks; subtrack != NULL; subtrack = subtrack->next)
                 {
                 if (!isSubtrackVisible(subtrack))
                     continue;
 
                 if (!isLimitedVisHiddenForAllWindows(subtrack) && 
                         !(doHideEmpties && slCount(subtrack->items) == 0))
                         // Ignore subtracks with no items in window
                     {
-                    addPreFlatTrack(&preFlatTracks, track);
+                    addPreFlatTrack(&preFlatTracks, subtrack);
                     }
                 }
             }
         }
     else
 	{	
         addPreFlatTrack(&preFlatTracks, track);
 	}
     }
+slReverse(&preFlatTracks);
 
 // check total height
 #define MAXSAFEHEIGHT "maxTrackImageHeightPx"
 int maxSafeHeight = atoi(cfgOptionDefault(MAXSAFEHEIGHT, "32000"));
 boolean safeHeight = TRUE;
 struct trackRef *pfRef;
 int tmpPixHeight = pixHeight;
 for(pfRef = preFlatTracks; pfRef; pfRef = pfRef->next)
     {
     struct track *pf = pfRef->track;
     int totalHeight = tmpPixHeight+trackPlusLabelHeight(pf,fontHeight);
     if (totalHeight > maxSafeHeight)
         {
         if (!forceWiggle)
             {