6653939f865225a4141f5b2a1b970e34b92b1226
max
Fri May 16 08:23:59 2025 -0700
fixing right-click ID for gene pred tracks, refs #35756
diff --git src/hg/hgTracks/simpleTracks.c src/hg/hgTracks/simpleTracks.c
index 158f018aa90..be2d0a613e3 100644
--- src/hg/hgTracks/simpleTracks.c
+++ src/hg/hgTracks/simpleTracks.c
@@ -3054,52 +3054,54 @@
// (accounts for space taken by exon arrows buttons)
if (codonsx <= picEnd && codonex >= picStart)
{
// clip it to avail pic
codonsx = (codonsx < picStart) ? picStart : codonsx;
codonex = (codonex > picEnd) ? picEnd : codonex;
int w = codonex - codonsx;
if (w > 0)
{
// temporarily remove the mouseOver from the lf, since linkedFeatureMapItem will always
// prefer a lf->mouseOver over the itemName
char *oldMouseOver = lf->mouseOver;
lf->mouseOver = NULL;
dyStringClear(codonDy);
+ // if you change this text, make sure you also change hgTracks.js:mouseOverToLabel
if (!isEmpty(existingText))
dyStringPrintf(codonDy, "Transcript: %s
", existingText);
int codonHgvsIx = (codon->codonIndex - 1) * 3;
if (codonHgvsIx >= 0)
dyStringPrintf(codonDy, "cDNA: c.%d-%d
", codonHgvsIx + 1, codonHgvsIx + 3);
dyStringPrintf(codonDy, "Strand: %c
Exon: %s %d of %d
%s",
strandChar, exonIntronText, exonIntronNumber, numExonIntrons, phaseText);
tg->mapItem(tg, hvg, item, codonDy->string, tg->mapItemName(tg, item),
sItem, eItem, codonsx, y, w, heightPer);
// and restore the mouseOver
lf->mouseOver = oldMouseOver;
}
}
}
}
}
else // either an intron, or else an exon zoomed out too far for codons (or no codons)
{
char *sep = "";
if (!isEmpty(existingText))
sep = "
";
+ // if you change this text, make sure you also change hgTracks.js:mouseOverToLabel
safef(mouseOverText, sizeof(mouseOverText), "Transcript: %s%sStrand: %c
Exon: %s %d of %d
%s",
existingText, sep, strandChar, exonIntronText, exonIntronNumber, numExonIntrons, phaseText);
// temporarily remove the mouseOver from the lf, since linkedFeatureMapItem will always
// prefer a lf->mouseOver over the itemName
char *oldMouseOver = lf->mouseOver;
lf->mouseOver = NULL;
tg->mapItem(tg, hvg, item, mouseOverText, tg->mapItemName(tg, item),
sItem, eItem, sx, y, w, heightPer);
// and restore the old mouseOver
lf->mouseOver = oldMouseOver;
picStart = ex; // prevent pileups. is this right? add 1? does it work?
// JC: Why do we care about pileups? First mapbox drawn wins.
}