cfeb4d454d22011d7f637d060e7a51057d168504 braney Mon Mar 30 12:01:16 2026 -0700 Add color picker support for most track types, refs #20460 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> diff --git src/hg/hgTracks/bedTrack.c src/hg/hgTracks/bedTrack.c index d6bb32fba3b..8a443b7f6ec 100644 --- src/hg/hgTracks/bedTrack.c +++ src/hg/hgTracks/bedTrack.c @@ -676,41 +676,40 @@ } } slReverse(&lfList); if(tg->extraUiData) filterBed(tg, &lfList); slSort(&lfList, linkedFeaturesCmp); tg->items = lfList; filterItemsOnNames(tg); maybeLoadSnake(tg); // if we're in snake mode, change the methods } Color colorFromCart(struct track *tg, Color color) /* Return the RGB color from the cart setting 'colorOverride' or just return color */ { -char varName[1024]; -safef(varName, sizeof(varName), "%s.%s", tg->tdb->track, "colorOverride"); -char *hexColorStr = cartOptionalString(cart, varName); +char *hexColorStr = cartOptionalStringClosestToHome(cart, tg->tdb, FALSE, "colorOverride"); if (hexColorStr==NULL || isEmpty(hexColorStr)) return color; if (hexColorStr[0]=='#') hexColorStr++; if (strlen(hexColorStr)!=6) return color; long rgb = strtol(hexColorStr,NULL,16); // Big and little Endians tg->itemColor = NULL; +tg->itemNameColor = NULL; return MAKECOLOR_32( ((rgb>>16)&0xff), ((rgb>>8)&0xff), (rgb&0xff) ); } void bedDrawSimpleAt(struct track *tg, void *item, struct hvGfx *hvg, int xOff, int y, double scale, MgFont *font, Color color, enum trackVisibility vis) /* Draw a single simple bed item at position. */ { struct bed *bed = item; int heightPer = tg->heightPer; int s = max(bed->chromStart, winStart), e = min(bed->chromEnd, winEnd); if (s > e) return; int x1 = round((s-winStart)*scale) + xOff; int x2 = round((e-winStart)*scale) + xOff;