dd919a184eed24110f134dec8b56b61f034d23a0 kate Mon Jun 10 18:26:45 2019 -0700 Finish initial implementation of multi-region link on interact track details. refs #22422 diff --git src/hg/hgTracks/hgTracks.c src/hg/hgTracks/hgTracks.c index 20c8913..870a6b6 100644 --- src/hg/hgTracks/hgTracks.c +++ src/hg/hgTracks/hgTracks.c @@ -9303,47 +9303,50 @@ } } else { if (positionIsVirt) errAbort("positionIsVirt=%d but virtMode=%d", positionIsVirt, virtMode); } } else { if (sameString(virtModeType,"default")) // we are leaving virtMode { - virtMode = FALSE; - + cartRemove(cart, "virtWinFull"); + cartRemove(cart, "virtShortDesc"); } else { // ENTERING VIRTMODE // First time initialization findNearest = TRUE; // For now, do this manually here: // sets window to full genome size, which for these demos should be small except for allChroms - if (sameString(virtModeType, "exonMostly") || sameString(virtModeType, "geneMostly") - || sameString(virtModeType, "customUrl") || sameString(virtModeType, "kcGenes")) + if (sameString(virtModeType, "exonMostly") || + sameString(virtModeType, "geneMostly") || + sameString(virtModeType, "kcGenes") || + (sameString(virtModeType, "customUrl") && + !cartUsualBoolean(cart, "virtWinFull", FALSE))) { // trying to find best vchrom location corresponding to chromName, winStart, winEnd); // try to find the nearest match if (!(chromName && findNearestVirtMatch(chromName, winStart, winEnd, findNearest, &virtWinStart, &virtWinEnd))) { // create 10k window near middle of vchrom warn("Your new regions are not near previous location. Using middle of new coordinates."); virtWinStart = virtSeqBaseCount / 2; virtWinEnd = virtWinStart + 10000; if (virtWinEnd > virtSeqBaseCount) virtWinEnd = virtSeqBaseCount; } virtMode = TRUE; } else if (sameString(virtModeType, "singleAltHaplo")) {