abd7278ac7167ede325d8c144a35ea59a0798766 chmalee Wed Jun 17 03:55:47 2026 -0700 Add a right click option to change color or background highlight color of individual track items. Only works for bed like items, refs #37778 diff --git src/hg/hgTracks/bedTrack.c src/hg/hgTracks/bedTrack.c index 33a6d8e244f..cbb3c1c8be1 100644 --- src/hg/hgTracks/bedTrack.c +++ src/hg/hgTracks/bedTrack.c @@ -674,30 +674,36 @@ boolean withHgsid = (trackDbSetting(tdb, "hgsid") != NULL); boolean thickDrawItem = (trackDbSetting(tdb, "thickDrawItem") != NULL); if (tg->itemColor != NULL) { color = tg->itemColor(tg, bed, hvg); } else if (tg->colorShades) { adjustBedScoreGrayLevel(tdb, bed, scoreMin, scoreMax); color = tg->colorShades[grayInRange(bed->score, scoreMin, scoreMax)]; } color = colorFromCart(tg, color); +// user-chosen per-item color (right-click "Color this item"). Simple bed has no background-box +// support, so both modes just recolor the glyph. +Color itemColorOver; +if (itemColorOverride(tg, bed, &itemColorOver, NULL)) + color = itemColorOver; + /* Keep the item at least 4 pixels wide at all viewpoints */ if (thickDrawItem && (w < 4)) { x1 -= ((5-w) >> 1); w = 4; x2 = x1 + w; } if (color) { hvGfxBox(hvg, x1, y, w, heightPer, color); if (tg->drawLabelInBox) { char *label = tg->itemName(tg, bed); drawScaledBoxLabel(hvg, s, e, scale, xOff, y, heightPer, color, font, label); }