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) {