8c908f948b09826c6cb4452ee5b282aca41be85e
galt
  Tue Dec 8 21:52:59 2015 -0800
Multi-region (exonMostly). This work allows people to look at virtual chromosomes from a list of regions and then navigate and perform all of the usual functions on it.

diff --git src/hg/lib/web.c src/hg/lib/web.c
index 7550906..297f9b8 100644
--- src/hg/lib/web.c
+++ src/hg/lib/web.c
@@ -840,30 +840,37 @@
 if ( (*retClade != NULL) && sameString(*retClade, "none"))
     cartRemove(cart, "position");
 /* Detect change of database and reset db-specific cart variables: */
 if (oldVars)
     {
     char *oldDb = hashFindVal(oldVars, "db");
     char *oldOrg = hashFindVal(oldVars, "org");
     char *oldClade = hashFindVal(oldVars, "clade");
     if ((!IS_CART_VAR_EMPTY(oldDb)    && differentWord(oldDb, *retDb)) ||
         (!IS_CART_VAR_EMPTY(oldOrg)   && differentWord(oldOrg, *retGenome)) ||
         (!IS_CART_VAR_EMPTY(oldClade) && differentWord(oldClade, *retClade)))
 	{
 	/* Change position to default -- unless it was passed in via CGI: */
 	if (cgiOptionalString("position") == NULL)
 	    cartSetString(cart, "position", hDefaultPos(*retDb));
+	// remove virtual chrom cart vars related to position
+	cartRemove(cart, "virtMode");
+	cartRemove(cart, "virtModeType");
+	cartRemove(cart, "lastVirtModeExtraState");
+	cartRemove(cart, "lastVirtModeType");
+	cartRemove(cart, "nonVirtPosition");
+	cartRemove(cart, "oldPosition");
 	/* hgNear search term -- unless it was passed in via CGI: */
 	if (cgiOptionalString("near_search") == NULL)
 	    cartRemove(cart, "near_search");
 	/* hgBlat results (hgUserPsl track): */
 	cartRemove(cart, "ss");
 	/* hgTables correlate: */
 	cartRemove(cart, "hgta_correlateTrack");
 	cartRemove(cart, "hgta_correlateTable");
 	cartRemove(cart, "hgta_correlateGroup");
 	cartRemove(cart, "hgta_correlateOp");
 	cartRemove(cart, "hgta_nextCorrelateTrack");
 	cartRemove(cart, "hgta_nextCorrelateTable");
 	cartRemove(cart, "hgta_nextCorrelateGroup");
 	cartRemove(cart, "hgta_nextCorrelateOp");
 	cartRemove(cart, "hgta_corrWinSize");