15f914c08ac9ec2b6eb6f2971596929909e2a815
kate
  Tue Mar 13 16:06:26 2018 -0700
Add filter activated info to track label. refs #17512

diff --git src/hg/hgTracks/interactTrack.c src/hg/hgTracks/interactTrack.c
index cda8b05..45b7026 100644
--- src/hg/hgTracks/interactTrack.c
+++ src/hg/hgTracks/interactTrack.c
@@ -49,44 +49,47 @@
     // TODO BRANEY: make this behavior generic for bigBeds
     // (bigBedSelectRange)
     tg->drawItems = bigDrawWarning;
     tg->networkErrMsg = "Too many items in display (zoom in)"; 
     tg->totalHeight = bigWarnTotalHeight;
     return;
 }
 
 // filter and grayscale adjustment on score
 char buf[1024];
 safef(buf, sizeof buf, "%s.%s", tg->tdb->track, INTERACT_MINSCORE);
 int minScore = cartUsualInt(cart, buf, INTERACT_DEFMINSCORE);
 int scoreMin = atoi(trackDbSettingClosestToHomeOrDefault(tg->tdb, "scoreMin", "0"));
 int scoreMax = atoi(trackDbSettingClosestToHomeOrDefault(tg->tdb, "scoreMax", "1000"));
 struct interact *inter, *next, *filteredItems = NULL;
+int count = slCount(tg->items);
 for (inter = tg->items; inter; inter = next)
     {
     next = inter->next;
     if (inter->score < minScore)
         continue;
     if (tg->colorShades)
         {
         struct bed *bed = (struct bed *)inter;
         adjustBedScoreGrayLevel(tg->tdb, bed, scoreMin, scoreMax);
         }
     slAddHead(&filteredItems, inter);
     }
 slReverse(&filteredItems);
 // consider sorting by score/value so highest scored items draw last (on top)
+if (slCount(filteredItems) != count)
+    labelTrackAsFiltered(tg);
 tg->items = filteredItems;
 }
 
 static void interactDrawItems(struct track *tg, int seqStart, int seqEnd,
         struct hvGfx *hvg, int xOff, int yOff, int width, 
         MgFont *font, Color color, enum trackVisibility vis)
 /* Draw a list of interact structures. */
 {
 #define DRAW_LINE       0
 #define DRAW_CURVE      1
 #define DRAW_ELLIPSE    2
 
 int draw = DRAW_LINE;
 if (vis != tvDense)
     {