a513cccc30dd0697dc78935f51a636e52a0793f0
hiram
  Mon Mar 23 16:36:04 2026 -0700
manage gcOnFly track regarding sessions refs #35958

diff --git src/hg/hgTracks/bigWigTrack.c src/hg/hgTracks/bigWigTrack.c
index ff36d0fb808..62e2ef3fef8 100644
--- src/hg/hgTracks/bigWigTrack.c
+++ src/hg/hgTracks/bigWigTrack.c
@@ -448,49 +448,50 @@
 gc5BaseOnTheFlyLoadPreDraw(tg, fetchStart, fetchEnd, insideWidth);
 }
 
 void bigWigMethods(struct track *track, struct trackDb *tdb,
 	int wordCount, char *words[])
 /* Set up bigWig methods. */
 {
 bedGraphMethods(track, tdb, wordCount, words);
 track->loadItems = bigWigLoadItems;
 track->preDrawItems = bigWigPreDrawItems;
 track->preDrawMultiRegion = wigMultiRegionGraphLimits;
 track->drawItems = bigWigDrawItems;
 track->loadPreDraw = bigWigLoadPreDraw;
 }
 
-struct track *gc5BaseOnTheFlyTg(struct cart *cart)
+struct track *gc5BaseOnTheFlyTg(struct cart *cart, char *sessionVis)
 /* Create an on-the-fly GC percent track computed directly from
- *     from genome sequence.
+ *     from genome sequence.  sessionVis is the visibility string
+ *     from a restored session cart, or NULL for default visibility.
  */
 {
 struct track *tg = trackNew();
 struct trackDb *tdb = trackDbNew();
 char longLabel[1024];
 safef(longLabel, sizeof(longLabel), "GC FLY Percent in %s-Base Windows", gcOnFlyWinSize(cart));
 
 /* Fill in trackDb fields needed by wigCartOptionsNew and bigWigMethods. */
 tdb->track      = cloneString(GC_ON_FLY_TRACK_NAME);
 tdb->table      = cloneString(GC_ON_FLY_TRACK_NAME);
 tdb->type       = cloneString("bigWig 0 100");
 tdb->shortLabel = cloneString(GC_ON_FLY_TRACK_LABEL);
 tdb->longLabel  = cloneString(longLabel);
 tdb->grp        = cloneString("map");
 tdb->canPack    = 0;
-tdb->visibility = tvHide;
+tdb->visibility = (sessionVis != NULL) ? hTvFromString(sessionVis) : tvHide;
 
 /* Add wig display settings to match what gc5BaseBw trackDb would have. */
 trackDbAddSetting(tdb, "autoScale",         "Off");
 trackDbAddSetting(tdb, "viewLimits",        "30:70");
 trackDbAddSetting(tdb, "maxHeightPixels",   "128:36:16");
 trackDbAddSetting(tdb, "graphTypeDefault",  "Bar");
 trackDbAddSetting(tdb, "gridDefault",       "OFF");
 trackDbAddSetting(tdb, "windowingFunction", "Mean");
 trackDbAddSetting(tdb, "color",             "0,0,0");
 trackDbAddSetting(tdb, "altColor",          "128,128,128");
 // trackDbAddSetting(tdb, "gcComputeOnTheFly", "on");
 // trackDbAddSetting(tdb, "gcOnTheFlyMaxBases", "500000");
 // trackDbAddSetting(tdb, "gcFallbackBigWig", "/gbdb/ce1x/bbi/gc5BaseBw/gc5Base.bw");
 trackDbAddSetting(tdb, "calcWinSize", gcOnFlyWinSize(cart));
 trackDbPolish(tdb);