6d78a8e2d7230272d15508db74169ad20cd76f3f braney Thu Apr 16 12:06:50 2026 -0700 Restrict color override to supported track types; add palette icon; deduplicate type check, refs #20460 Note: palette.png must be installed to htdocs/images/ (new file). Co-Authored-By: Claude Opus 4.6 (1M context) diff --git src/hg/hgTracks/imageV2.c src/hg/hgTracks/imageV2.c index 70da15c4437..5f95146aeae 100644 --- src/hg/hgTracks/imageV2.c +++ src/hg/hgTracks/imageV2.c @@ -304,31 +304,31 @@ // Close with some standard vars jsonObjectAdd(ele, "shortLabel", newJsonString(track->shortLabel)); jsonObjectAdd(ele, "longLabel", newJsonString(track->longLabel)); jsonObjectAdd(ele, "canPack", newJsonNumber(track->canPack)); if (track->limitedVis != track->visibility) jsonObjectAdd(ele, "limitedVis", newJsonNumber(track->limitedVis)); jsonObjectAdd(ele, "visibility", newJsonNumber(track->visibility)); if (trackDbSetting(track->tdb, "onlyVisibility")) { jsonObjectAdd(ele, "onlyVisibility", newJsonString(trackDbSetting(track->tdb, "onlyVisibility"))); } // Color override support for right-click color picker -if (cfgOptionBooleanDefault("showColorPicker", FALSE)) +if (tdbSupportsColorOverride(track->tdb)) { char defaultColor[16]; safef(defaultColor, sizeof(defaultColor), "#%02x%02x%02x", track->color.r, track->color.g, track->color.b); jsonObjectAdd(ele, "defaultColor", newJsonString(defaultColor)); char varName[1024]; safef(varName, sizeof(varName), "%s.colorOverride", track->track); char *overrideColor = cartOptionalString(cart, varName); if (isNotEmpty(overrideColor)) jsonObjectAdd(ele, "colorOverride", newJsonString(overrideColor)); safef(varName, sizeof(varName), "%s.colorOverrideOn", track->track); if (cartUsualBoolean(cart, varName, FALSE)) jsonObjectAdd(ele, "colorOverrideOn", newJsonBoolean(TRUE)); } }