afdb90131d5c0ea91574e4fb65fc7983e6b5551f
tdreszer
  Mon Feb 6 15:29:14 2012 -0800
Fix some edge cases when superChild composite is hidden by its superParent.  Redmine 6622
diff --git src/hg/hgTrackUi/hgTrackUi.c src/hg/hgTrackUi/hgTrackUi.c
index 3187a31..899f0da 100644
--- src/hg/hgTrackUi/hgTrackUi.c
+++ src/hg/hgTrackUi/hgTrackUi.c
@@ -2781,34 +2781,42 @@
             superTrackDropDown(cart, tdb, 1);
             }
         else
             {
             /* normal visibility control dropdown */
             enum trackVisibility vis = tdb->visibility;
             boolean canPack = rTdbTreeCanPack(tdb);
             if (ajax)
                 {
                 vis = tdbVisLimitedByAncestry(cart, tdb, TRUE);  // ajax popups should show currently inherited visability
                 // composite children may inherit squish/pack vis so allow it.
                 if (canPack == FALSE && tdbIsCompositeChild(tdb))
                     canPack = rTdbTreeCanPack(tdbGetComposite(tdb));
                 }
             else
+                {
                 vis = hTvFromString(cartUsualString(cart,tdb->track, hStringFromTv(vis))); // But hgTrackUi page should show local vis
-            hTvDropDownClassVisOnlyAndExtra(tdb->track,vis,
-                canPack, "normalText visDD", trackDbSetting(tdb, "onlyVisibility"),
-                                (tdb->parent != NULL ?"onchange='return visTriggersHiddenSelect(this);'":NULL));
+                if (tdbIsSuperTrackChild(tdb))
+                    {
+                    hTvDropDownClassVisOnlyAndExtra(tdb->track,vis,canPack,
+                        "normalText superChild visDD", trackDbSetting(tdb, "onlyVisibility"),
+                        "onchange='visTriggersHiddenSelect(this);'");
+                    }
+                else
+                    hTvDropDownClassVisOnlyAndExtra(tdb->track,vis,canPack,
+                        "normalText visDD", trackDbSetting(tdb, "onlyVisibility"),NULL);
+                }
             }
     if (!ajax)
         {
         printf(" ");
         cgiMakeButton("Submit", "Submit");
     #ifdef SUBTRACK_CFG
         // Offer cancel button always?     // composites and multiTracks (not standAlones or supers)
         if (tdbIsContainer(tdb))
             {
             printf(" ");
             cgiMakeOnClickButton("window.history.back();","Cancel");
             }
     #endif///def SUBTRACK_CFG
 
         if(tdbIsComposite(tdb))