ace7d6c2a03c2ad76c14134546785b8c3fa61ac2
kate
  Tue Jan 8 11:39:09 2019 -0800
Implement 'packDense' setting (tentative name) to support Regeneron 2nd contract amino acide display.  This setting will pack items on a single line if they are adjacent (suppresses padding between packed items). refs #22739

diff --git src/hg/hgTracks/simpleTracks.c src/hg/hgTracks/simpleTracks.c
index 5b44bb9..61e653b 100644
--- src/hg/hgTracks/simpleTracks.c
+++ src/hg/hgTracks/simpleTracks.c
@@ -651,32 +651,33 @@
 	    slReverse(&rangeList);
 	    slReverse(&nodeList);
 
             // non-proportional fixed-width handling (e.g. GTEX)
             if (tg->nonPropPixelWidth)
                 {
                 int npWidth = tg->nonPropPixelWidth(tg, item);
 		npWidth += leftLabelSize;
                 if (npWidth > rangeWidth)
                     { // keep the first range but extend it
                     range = rangeList;
                     range->end = range->start + npWidth;
                     range->next = NULL;  // do not need the rest of the ranges
                     }
                 }
-
-	    if (spaceSaverAddOverflowMulti(ss, rangeList, nodeList, allowOverflow) == NULL)
+            boolean doPadding = !cartOrTdbBoolean(cart, tg->tdb, "packDense", FALSE);
+	    if (spaceSaverAddOverflowMultiOptionalPadding(
+                                ss, rangeList, nodeList, allowOverflow, doPadding) == NULL)
 		break;
 
 	    }
 	}
     spaceSaverFinish(tg->ss);
     }
 // must assign at end to get final row count
 for(tg=tgSave; tg; tg=tg->nextWindow)
     {
     tg->ss->rowCount   = ss->rowCount;
     }
 tg = tgSave;
 spaceSaverFree(&ss);
 
 return tg->ss->rowCount;