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/cytoBandTrack.c src/hg/hgTracks/cytoBandTrack.c
index a0040f6..0ec2154 100644
--- src/hg/hgTracks/cytoBandTrack.c
+++ src/hg/hgTracks/cytoBandTrack.c
@@ -158,36 +158,48 @@
 	int cenLeft, cenRight, cenTop, cenBottom;
 
 	/* Get the coordinates of the edges of the centromere. */
 	cenLeft = round((cb->chromStart)*scale) + xOff + xBorder;
 	cenRight = round((cb->next->chromEnd)*scale) + xOff + xBorder;
 	cenTop = yOff+4;
 	cenBottom = yOff + yBorder - 3;
 
 	/* Draw centromere itself. */
 	hCytoBandDrawCentromere(hvg, cenLeft, cenTop, cenRight - cenLeft,
 	     cenBottom-cenTop+1, MG_WHITE, hCytoBandCentromereColor(hvg));
 	break;
 	}
     }
 
-/* Draw a red box around position in current browser window.  double
- thick so two lines each. */
+/* Draw a red box around all positions in windows for this chromName.  
+ * Double thick so two pixels thick each. */
+struct window *window;
+for (window=windows; window; window=window->next)
+    {
+    if (!sameString(chromName, window->chromName))
+	continue;
+
+    x1 = round((window->winStart)*scale) + xOff + xBorder -1;
+    x2 = round((window->winEnd)*scale) + xOff + xBorder -1;
+
     hvGfxBox(hvg, x1, yOff+1,             x2-x1, 2,       MG_RED);
     hvGfxBox(hvg, x1, yOff + yBorder - 1, x2-x1, 2,       MG_RED);
     hvGfxBox(hvg, x1, yOff+1,             2,     yBorder, MG_RED);
     hvGfxBox(hvg, x2, yOff+1,             2,     yBorder, MG_RED);
+
+    }
+
 hvGfxUnclip(hvg);
 
 /* Put back the lineHeight for the track
    now that we are done spoofing tgDrawItems(). */
 tg->heightPer += 11;
 tg->lineHeight += 11;
 }
 
 void cytoBandIdeoMapItem(struct track *tg, struct hvGfx *hvg, void *item,
 			    char *itemName, char *mapItemName, int start, int end,
 			    int x, int y, int width, int height)
 /* Print out a box to jump to band in browser window .*/
 {
 struct cytoBand *cb = item;