db63cb8bc7c4d9988557fc4de66a241bcce28519
max
  Mon Mar 2 06:58:13 2026 -0800
got viz-remapping logic the opposite way in previous commit, refs #36917

diff --git src/hg/lib/hui.c src/hg/lib/hui.c
index 14ea9d5eb68..b2adebc3a6e 100644
--- src/hg/lib/hui.c
+++ src/hg/lib/hui.c
@@ -959,37 +959,38 @@
 else
     {
     if (canPack)
         return pack;
     else
         return noPack;
     }
 }
 
 void hTvDropDownClassVisOnlyAndExtra(char *varName, enum trackVisibility vis,
 				 boolean canPack, char *class, char *visOnly, struct slPair *events)
 // Make track visibility drop down for varName with style class, and potentially limited to visOnly
 {
 char** vizArr = hTvGetVizArr(vis, canPack, visOnly);
 char* checked = vizArr[vis];
+int vizArrLen = arrNullLen(vizArr);
 
+// Same as hTvDropDownClassWithJavascript():
+// Normal track with no special limits needs mapping to get back checked value
 static int packIx[] = {tvHide,tvDense,tvSquish,tvPack,tvFull};
-if (visOnly && canPack)
+if (visOnly==NULL && canPack)
     checked = vizArr[packIx[vis]];
 
-int vizArrLen = arrNullLen(vizArr);
-
 cgiMakeDropListClassWithStyleAndJavascript(varName, vizArr, vizArrLen, checked, class,TV_DROPDOWN_STYLE, events);
 }
 
 void hideShowDropDownWithClassAndExtra(char *varName, char * id, boolean show, char *class, struct slPair *events)
 // Make hide/show dropdown for varName
 {
 static char *hideShow[] =
     {
     "hide",
     "show"
     };
 cgiMakeDropListClassWithIdStyleAndJavascript(varName, id, hideShow, ArraySize(hideShow),
 				       hideShow[show], class, TV_DROPDOWN_STYLE, events);
 }