6035ae51559998e5f45beeb52d371498622d639d
kate
  Fri Mar 9 10:58:57 2018 -0800
Additional detail on dense mode: highlight cross-chrom items by coloring magenta. refs #17512

diff --git src/hg/hgTracks/interactTrack.c src/hg/hgTracks/interactTrack.c
index 34f6481..8ade8cb 100644
--- src/hg/hgTracks/interactTrack.c
+++ src/hg/hgTracks/interactTrack.c
@@ -108,34 +108,33 @@
 int fontHeight = vgGetFontPixelHeight(hvg->vg, font);
 int otherHeight = (nOther) ? 3 * fontHeight : 0;
 int sameHeight = (nSame) ? tg->height - otherHeight: 0;
 
 // Draw items
 for (inter=inters; inter; inter=inter->next)
     {
     char *otherChrom = interactOtherChrom(inter);
     safef(itemBuf, sizeof itemBuf, "%s", inter->name);
     struct dyString *ds = dyStringNew(0);
     dyStringPrintf(ds, "%s", inter->name);
     if (inter->score)
         dyStringPrintf(ds, " %d", inter->score);
     char *statusBuf = dyStringCannibalize(&ds);
 
-    if (vis == tvDense && interactOtherChrom(inter))
-        color = MG_MAGENTA;
-    else
     color = interactItemColor(tg, inter, hvg);
+    if (vis == tvDense && interactOtherChrom(inter) && color == MG_BLACK)
+        color = MG_MAGENTA;
     
     // TODO: simplify by using start/end instead of center and width
     // This is a holdover from longRange track implementation
     unsigned lowStart, lowEnd, highStart, highEnd;
     if (otherChrom)
         {
         lowStart = highStart = inter->chromStart;
         lowEnd = highEnd = inter->chromEnd;
         }
     else if (inter->sourceStart < inter->targetStart)
         {
         lowStart = inter->sourceStart;
         lowEnd = inter->sourceEnd;
         highStart = inter->targetStart;
         highEnd = inter->targetEnd;