03eac611bbafeb3463e1efcea835f85b4198092a
max
  Wed May 21 08:02:11 2025 -0700
adapting intron tooltip text for genePred, refs #33749

diff --git src/hg/hgTracks/simpleTracks.c src/hg/hgTracks/simpleTracks.c
index 46dff1be32e..e2759204520 100644
--- src/hg/hgTracks/simpleTracks.c
+++ src/hg/hgTracks/simpleTracks.c
@@ -3061,53 +3061,60 @@
                                 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, "<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);
+                                        dyStringPrintf(codonDy, "<b>Codons: </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>cDNA:</b> Zoom in to show position<br><b>Strand:</b> %c<br><b>Exon:</b> %s %d of %d<br>%s",
-                            existingText, sep, strandChar, exonIntronText, exonIntronNumber, numExonIntrons, phaseText);
+                    char *posNote = "";
+                    char *exonOrIntron = "Intron";
+                    if (isExon) 
+                        {
+                        posNote = "<b>Codons:</b> Zoom in to show cDNA position<br>";
+                        exonOrIntron = "Exon";
+                        }
+
+
+                    safef(mouseOverText, sizeof(mouseOverText), "<b>Transcript:</b> %s<br>%s"
+                            "<b>Strand:</b> %c<br><b>%s:</b> %s %d of %d<br>%s",
+                        existingText, posNote, strandChar, exonOrIntron, 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.
                     }
                 }
 	    }