b37574e1c170d4303994ac8a3bac774e0f12f5d5
braney
  Wed Nov 22 17:28:28 2023 -0800
be more careful about what we do with composites when hiding all before
an RTS load

diff --git src/hg/hgTracks/hgTracks.c src/hg/hgTracks/hgTracks.c
index e6df559..7c71d8f 100644
--- src/hg/hgTracks/hgTracks.c
+++ src/hg/hgTracks/hgTracks.c
@@ -352,31 +352,39 @@
                     if (changeVis == tdb->visibility)
                         /* remove if setting to default vis */
                         cartRemove(cart, track->track);
                     else
                         cartSetString(cart, track->track, hStringFromTv(changeVis));
                     track->visibility = changeVis;
                     }
 
                 // Whether super child or not, if its a composite, then handle the children
                 if (tdbIsComposite(tdb))
                     {
                     struct track *subtrack;
                     for (subtrack=track->subtracks;subtrack!=NULL;subtrack=subtrack->next)
                         {
                         if (changeVis == tvHide)               // Since subtrack level vis is an
+                            {
                             cartRemove(cart, subtrack->track); // override, simply remove to hide
+                            if (excludeHash != NULL) // if we're loading an RTS, but probably we should always do this
+                                {
+                                char selName[4096];
+                                safef(selName, sizeof(selName), "%s_sel", subtrack->track);
+                                cartRemove(cart, selName);
+                                }
+                            }
                         else
                             cartSetString(cart, subtrack->track, hStringFromTv(changeVis));
                         subtrack->visibility = changeVis;
                         }
                     }
                 }
             }
         }
     }
 slSort(&groupList, gCmpPriority);
 }
 
 void changeTrackVis(struct group *groupList, char *groupTarget, int changeVis)
 /* Change track visibilities. If groupTarget is
  * NULL then set visibility for tracks in all groups.  Otherwise,