1e6646b9f5a948d781d599056cf395fb336c03cb tdreszer Mon Dec 13 14:27:43 2010 -0800 Did I say last time was the fix? No no, this time really. diff --git src/hg/lib/cart.c src/hg/lib/cart.c index 7e60d75..107c385 100644 --- src/hg/lib/cart.c +++ src/hg/lib/cart.c @@ -2106,52 +2106,49 @@ { cartSetString(cart,setting,hStringFromTv(visMax)); // Set this explicitly. The visOrig may be inherited! countVisChanged++; if (visOrig == tvHide && tdbIsSuperTrackChild(parent)) cartTdbOverrideSuperTracks(cart,parent,FALSE); // deal with superTrack vis! cleanup } // Now set all subtracks that inherit vis back to visOrig for(subtrack = parent->subtracks;subtrack != NULL;subtrack = subtrack->next) { int fourState = subtrackFourStateChecked(subtrack,cart); if (!fourStateChecked(fourState)) cartRemove(cart,subtrack->track); // Remove subtrack level vis if it isn't even checked just in case else // subtrack is checked (should include subtrack level vis) { - if (tdbIsMultiTrack(parent)) - cartRemove(cart,subtrack->track); // MultiTrack vis is ALWAYS inherited vis and non-selected should not have vis - else // NO LONGER EXCLUDE THOSE WITH INDIVIDUAL VIS//if (!hashFindVal(subVisHash, subtrack->track)) // if the subtrack doesn't have individual vis AND... + if (!hashFindVal(subVisHash, subtrack->track)) // if the subtrack doesn't have individual vis AND... { if (reshapeFully || visOrig == tvHide) { subtrackFourStateCheckedSet(subtrack, cart,FALSE,fourStateEnabled(fourState)); // uncheck cartRemove(cart,subtrack->track); // Remove it if it exists, just in case countUnchecked++; } + } + else if (tdbIsMultiTrack(parent)) + cartRemove(cart,subtrack->track); // MultiTrack vis is ALWAYS inherited vis and non-selected should not have vis else if (visOrig != tvHide) { - //if (tdbIsMultiTrack(parent)) - // cartRemove(cart,subtrack->track); // MultiTrack vis is ALWAYS inherited - //else cartSetString(cart,subtrack->track,hStringFromTv(visOrig)); countVisChanged++; } } } } - } else if (tdbIsMultiTrack(parent)) { // MultiTrack vis is ALWAYS inherited vis so remove any subtrack specific vis struct hashCookie brownie = hashFirst(subVisHash); struct hashEl* cartVar = NULL; while ((cartVar = hashNext(&brownie)) != NULL) { if (!endsWith(cartVar->name,"_sel")) cartRemove(cart,cartVar->name); } } if (countUnchecked + countVisChanged) WARN("%s visOrig:%s visMax:%s unchecked:%d Vis changed:%d",parent->track,hStringFromTv(visOrig),hStringFromTv(visMax),countUnchecked,countVisChanged); return (countUnchecked + countVisChanged);