3eb95c01ca1df4d988730fc4318a4ad7b4644b9e jcasper Sun Nov 23 09:56:48 2025 -0800 Right-click menu in hgTracks should reflect onlyVisibility settings, refs #36746 diff --git src/hg/js/hgTracks.js src/hg/js/hgTracks.js index 94699470721..6b70118b2b3 100644 --- src/hg/js/hgTracks.js +++ src/hg/js/hgTracks.js @@ -2873,45 +2873,65 @@ o = {}; o[str] = {onclick: function (menuItemClicked, menuObject) { rightClick.hit(menuItemClicked, menuObject, title); return true;}}; menu.push(o); }); done = true; } else { if (rec) { // XXXX check current state from a hidden variable. var visStrings = new Array("hide","dense","squish","pack","full"); for (var i in visStrings) { // use maxVisibility and change hgTracks so it can hide subtracks o = {}; str = blankImg + " " + visStrings[i]; + if (rec.onlyVisibility) { + if (visStrings[i] == "hide" || visStrings[i] === rec.onlyVisibility) { + + if (rec.localVisibility) { + if (visStrings[i] === rec.localVisibility) { + str = selectedImg + " " + visStrings[i]; + } + } else if (visStrings[i] === vis.enumOrder[rec.visibility]) { + str = selectedImg + " " + visStrings[i]; + } + o[str] = { onclick: + rightClick.makeHitCallback(visStrings[i]) + }; + menu.push(o); + + + } + } + else { if (rec.canPack || (visStrings[i] !== "pack" && visStrings[i] !== "squish")) { if (rec.localVisibility) { if (visStrings[i] === rec.localVisibility) { str = selectedImg + " " + visStrings[i]; } } else if (visStrings[i] === vis.enumOrder[rec.visibility]) { str = selectedImg + " " + visStrings[i]; } o[str] = { onclick: rightClick.makeHitCallback(visStrings[i]) }; menu.push(o); } } + } done = true; } } } if (done) { o = {}; var any = false; var title = rightClick.selectedMenuItem.title || "feature"; var maxLength = 60; if ((isGene || isHgc || id === "wikiTrack") && href.indexOf("i=mergedItem") === -1) { // Add "Open details..." item var displayItemFunctions = false; if (rec) {