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/hgTracks/extTools.c src/hg/hgTracks/extTools.c
index 3ddea04..76d39dc 100644
--- src/hg/hgTracks/extTools.c
+++ src/hg/hgTracks/extTools.c
@@ -165,30 +165,35 @@
     if (sameWord(et->tool, tool))
         break;
 if (et==NULL)
     errAbort("No configuration found for tool %s", tool);
 
 // construct an invisible CGI form with the given parameters
 printf("<html><body>\n");
 
 if (debug)
     printf("Target URL: %s<p>", et->url);
 
 char *chromName;
 int winStart, winEnd;
 char *db = cartString(cart, "db");
 char *pos = cartString(cart, "position");
+
+// Try to deal with virt chrom position used by hgTracks.
+if (startsWith("virt:", cartUsualString(cart, "position", "")))
+    pos = cartString(cart, "nonVirtPosition");
+
 findGenomePos(db, pos, &chromName, &winStart, &winEnd, cart);
 int len = winEnd-winStart;
 
 char start1[255];
 safef(start1, sizeof(start1), "%d", winStart+1);
 
 char *url = replaceInUrl(et->url, "", cart, db, chromName, winStart, winEnd, NULL, TRUE);
 
 char *method = "POST";
 if (et->isHttpGet)
     method = "GET";
 
 printf("<form id=\"redirForm\" method=\"%s\" action=\"%s\">\n", method, url);
 
 struct slPair *slp;