677dcea9305f7851a04cc8d7204479ffa8e0554c
max
Fri May 16 08:46:02 2025 -0700
fixing right-click exon options for gene pred tracks, refs #35756
diff --git src/hg/hgTracks/simpleTracks.c src/hg/hgTracks/simpleTracks.c
index be2d0a613e3..d6e023879ed 100644
--- src/hg/hgTracks/simpleTracks.c
+++ src/hg/hgTracks/simpleTracks.c
@@ -3060,48 +3060,50 @@
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);
+ // if you change the text below, also change hgTracks:mouseOverToExon
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
+ // if you change the text below, also change hgTracks:mouseOverToExon
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.
}