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, "<b>Transcript: </b> %s<br>", existingText); int codonHgvsIx = (codon->codonIndex - 1) * 3; if (codonHgvsIx >= 0) dyStringPrintf(codonDy, "<b>cDNA: </b> c.%d-%d<br>", codonHgvsIx + 1, codonHgvsIx + 3); + // if you change the text below, also change hgTracks:mouseOverToExon dyStringPrintf(codonDy, "<b>Strand: </b> %c<br><b>Exon: </b>%s %d of %d<br>%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 = "<br>"; // 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), "<b>Transcript:</b> %s%s<b>Strand:</b> %c<br><b>Exon:</b> %s %d of %d<br>%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. }