bd4567974fda4dceb15dba92e45f6512554e50db braney Tue Apr 6 17:05:32 2021 -0700 hopefully fixes #27254... though it probably breaks something else. diff --git src/hg/lib/hui.c src/hg/lib/hui.c index bc876a0..5db371a 100644 --- src/hg/lib/hui.c +++ src/hg/lib/hui.c @@ -9084,39 +9084,48 @@ // Fills optional boolean if subtrack specific vis is found // If not NULL cart will be examined without ClosestToHome. // Folders/supertracks resolve to hide/full { if (subtrackOverride != NULL) *subtrackOverride = FALSE; // default // tdb->visibility should reflect local trackDb setting enum trackVisibility vis = tdb->visibility; if (tdbIsSuperTrack(tdb)) vis = (tdb->isShow ? tvFull : tvHide); if (cart != NULL) // cart is optional { char *cartVis = cartOptionalString(cart, tdb->track); + boolean cgiVar = FALSE; // check hub tracks for visibility settings without the hub prefix if (startsWith("hub_", tdb->track) && (cartVis == NULL)) - cartVis = cartOptionalString(cart, trackHubSkipHubName(tdb->track)); + { + cartVis = cgiOptionalString( trackHubSkipHubName(tdb->track)); + cgiVar = TRUE; + } if (cartVis != NULL) { vis = hTvFromString(cartVis); if (subtrackOverride != NULL && tdbIsContainerChild(tdb)) *subtrackOverride = TRUE; + if (cgiVar) + { + cartSetString(cart, tdb->track, cartVis); // add the decorated visibility to the cart + cartRemove(cart, trackHubSkipHubName(tdb->track)); // remove the undecorated version + } } } return vis; } enum trackVisibility tdbVisLimitedByAncestors(struct cart *cart, struct trackDb *tdb, boolean checkBoxToo, boolean foldersToo) // returns visibility limited by ancestry. // This includes subtrack vis override and parents limit maximum. // cart may be null, in which case, only trackDb settings (default state) are examined // checkBoxToo means ensure subtrack checkbox state is visible // foldersToo means limit by folders (aka superTracks) as well. { boolean subtrackOverride = FALSE; enum trackVisibility vis = tdbLocalVisibility(cart,tdb,&subtrackOverride);