da2e00021362a366f2f3b17b238305ca7981c7d2 tdreszer Thu Dec 15 12:44:34 2011 -0800 Some older composites have packable children which are seen in rightClick as unpackable. The mixed case that gives rise to this should not be allowed now, but we can support it for those older composites. The rule is, if any single subtrack is packable, then the whole tree is. diff --git src/hg/hgTrackUi/hgTrackUi.c src/hg/hgTrackUi/hgTrackUi.c index daace8b..3d1475d 100644 --- src/hg/hgTrackUi/hgTrackUi.c +++ src/hg/hgTrackUi/hgTrackUi.c @@ -2768,36 +2768,37 @@ if (!tdbIsDownloadsOnly(tdb)) { /* Display visibility menu */ if (tdbIsComposite(tdb) && multViewCount(tdb) > 0) printf("<B>Maximum display mode: </B>"); else printf("<B>Display mode: </B>"); if (tdbIsSuper(tdb)) { superTrackDropDown(cart, tdb, 1); } else { /* normal visibility control dropdown */ enum trackVisibility vis = tdb->visibility; - boolean canPack = tdb->canPack; + boolean canPack = rTdbTreeCanPack(tdb); if (ajax) { vis = tdbVisLimitedByAncestry(cart, tdb, TRUE); // ajax popups should show currently inherited visability - if (tdbIsCompositeChild(tdb)) - canPack = TRUE; + // 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 (!ajax) { printf(" "); cgiMakeButton("Submit", "Submit"); #ifdef SUBTRACK_CFG // Offer cancel button always? // composites and multiTracks (not standAlones or supers) if (tdbIsContainer(tdb)) {