921fc5c2ede5f5360aa61b3bc2b7d894c46bfff7
braney
  Mon Jan 8 15:06:05 2024 -0800
when checking to see if tracks have changed their visibility, use
limitedVis if set since visibility is not always set if limitedVis is
set

diff --git src/hg/js/hgTracks.js src/hg/js/hgTracks.js
index f07adfb..659937a 100644
--- src/hg/js/hgTracks.js
+++ src/hg/js/hgTracks.js
@@ -3975,30 +3975,33 @@
         }
         return false;
     },
 
     updateImgForAllIds: function (response, oldJson, newJson)
     {   // update all rows in imgTbl based upon navigateInPlace response.
         var imgTbl = $('#imgTbl');
 
         // We update rows one at a time 
         // (b/c updating the whole imgTbl at one time doesn't work in IE).
         var id;
         for (id in newJson.trackDb) {
             var newJsonRec = newJson.trackDb[id];
             var oldJsonRec = oldJson.trackDb[id];
             
+            // use limitedVis as visibility if set
+            if (newJsonRec.limitedVis !== undefined)
+                newJsonRec.visibility = newJsonRec.limitedVis;
             if (newJsonRec.visibility === 0)  // hidden 'ruler' is in newJson.trackDb!
                 continue;
             if (newJsonRec.type === "remote")
                 continue;
             var escapedId = id.replace('.', '\\.');
             if (oldJsonRec &&  oldJsonRec.visibility !== 0 && $('tr#tr_' + escapedId).length === 1) {
                 // New track replacing old:
                 if (!imageV2.updateImgForId(response, id, true, newJsonRec))
                     warn("Couldn't parse out new image for id: " + id);
             } else { //if (!oldJsonRec || oldJsonRec.visibility === 0)
                 // New track seen for the first time
                 if (imageV2.backSupport) {
                     $(imgTbl).append("<tr id='tr_" + id + "' abbr='0'" + // abbr gets filled in
                                         " class='imgOrd trDraggable'></tr>");
                     if (!imageV2.updateImgForId(response, id, true, newJsonRec)) {