d4e14ca0a20861998ad7c807a6b2473ade5c3c4f
max
  Wed Jul 6 06:31:12 2022 -0700
add label hints for doWiggle and maxWindowCoverage tracks, refs #29715

diff --git src/hg/hgTracks/simpleTracks.c src/hg/hgTracks/simpleTracks.c
index 5d2f762..12a16e6 100644
--- src/hg/hgTracks/simpleTracks.c
+++ src/hg/hgTracks/simpleTracks.c
@@ -352,46 +352,52 @@
 /* Temporary function until all composite tracks point to their own children */
 {
 return (tdbIsComposite(track->tdb) && track->subtracks != NULL);
 }
 
 Color slightlyLighterColor(struct hvGfx *hvg, Color color)
 /* Get slightly lighter shade of a color - closer to gray actually  */
 {
 struct rgbColor rgbColor =  hvGfxColorIxToRgb(hvg, color);
 rgbColor.r = (rgbColor.r+128)/2;
 rgbColor.g = (rgbColor.g+128)/2;
 rgbColor.b = (rgbColor.b+128)/2;
 return hvGfxFindColorIx(hvg, rgbColor.r, rgbColor.g, rgbColor.b);
 }
 
-boolean checkIfWiggling(struct cart *cart, struct track *tg)
-/* Check to see if a track should be drawing as a wiggle. */
-{
-boolean doWiggle = cartOrTdbBoolean(cart, tg->tdb, "doWiggle" , FALSE);
-
-if (!doWiggle)
+boolean winTooBigDoWiggle(struct cart *cart, struct track *tg)
+/* return true if we wiggle because the window size exceeds a certain threshold? */
 {
+boolean doWiggle = FALSE;
 char *setting = trackDbSetting(tg->tdb, "maxWindowCoverage" );
 if (setting)
     {
     unsigned size = sqlUnsigned(setting);
     if ((size > 0) && ((winEnd - winStart) > size))
         doWiggle = TRUE;
     }
+return doWiggle;
 }
 
+boolean checkIfWiggling(struct cart *cart, struct track *tg)
+/* Check to see if a track should be drawing as a wiggle. */
+{
+boolean doWiggle = cartOrTdbBoolean(cart, tg->tdb, "doWiggle" , FALSE);
+
+if (!doWiggle)
+    doWiggle = winTooBigDoWiggle(cart, tg);
+
 if (doWiggle && isEmpty(tg->networkErrMsg))
     {
     tg->drawLeftLabels = wigLeftLabels;
     tg->colorShades = shadesOfGray;
     tg->mapsSelf = TRUE;
     }
 
 return doWiggle;
 }
 
 struct sameItemNode
 /* sameItem node */
     {
     struct sameItemNode *next; /* next node */
     struct window *window;     /* in which window - can use to detect duplicate keys */