983a9111e0930f4e3902b30390f2ee20b74513a1
kate
  Tue Jul 28 14:04:15 2020 -0700
Remove recommended track set from cart when loading new session or changing assembly, or when panel has been closed by user click on X. refs #25601

diff --git src/hg/hgTracks/hgTracks.c src/hg/hgTracks/hgTracks.c
index 423316e..fd0be36 100644
--- src/hg/hgTracks/hgTracks.c
+++ src/hg/hgTracks/hgTracks.c
@@ -8445,33 +8445,38 @@
 	    hPrintf("%s %s on Archaeon %s Assembly",
 		organization, browserName, freezeName);
 	    }
 	else
 	    {
 	    if (stringIn(database, freezeName))
 		hPrintf("%s %s on %s %s Assembly",
 			organization, browserName, organism, freezeName);
 	    else
 		hPrintf("%s %s on %s %s Assembly (%s)",
 			organization, browserName, trackHubSkipHubName(organism), freezeName, trackHubSkipHubName(database));
 	    }
 	}
     hPrintf("</B></SPAN>");
 
-    if (defaultTracks || hideAll)
-        cartRemove(cart, "hgS_otherUserSessionLabel");
-    char *sessionLabel = cartOptionalString(cart, "hgS_otherUserSessionLabel");
+    // Disable recommended track set panel when changing tracks, session, database
+    char *sessionLabel = cartOptionalString(cart, hgsOtherUserSessionLabel);
+    char *oldDb = hashFindVal(oldVars, "db");
+    if (defaultTracks || hideAll || 
+        (oldDb && differentString(database, oldDb)) ||
+        (sessionLabel && sameString(sessionLabel, "off")))
+                cartRemove(cart, hgsOtherUserSessionLabel);
+    sessionLabel = cartOptionalString(cart, hgsOtherUserSessionLabel);
     if (sessionLabel)
         {
         char *panel = "recTrackSetsPanel";
         isSessChanged = hasSessionChanged();
 
         struct dyString *hoverText = dyStringNew(0);
         dyStringPrintf(hoverText, "Your browser is displaying the %s track set%s. "
                                 " Click to change to another.", sessionLabel,
                                 isSessChanged ? 
                                 ", with changes (added or removed tracks) you have requested" : "");
         // TODO: cleanup layout tweaking for FF on IE10
         hPrintf("&nbsp;&nbsp;&nbsp;&nbsp;");
         hPrintf("<span id='spacer' style='display: inline; padding-left: 10px;' >&nbsp;</span>");
 
         hPrintf("<span id='%s' class='gbSessionLabelPanel' style='display: inline-block;' title='%s'>",