c3650b1ed157f95f90b5c486464d0fa430d13a99
max
  Wed Jun 17 06:11:52 2026 -0700
improved complement feature text, refs #37779

diff --git src/hg/hgTracks/hgTracks.c src/hg/hgTracks/hgTracks.c
index 231a4c3912a..68d165a9c74 100644
--- src/hg/hgTracks/hgTracks.c
+++ src/hg/hgTracks/hgTracks.c
@@ -644,34 +644,47 @@
 if (genomeIsRna)
     toRna(seq->dna);
 spreadBasesString(hvg, x, y, width, height, color, font,
                                 seq->dna, seq->size, FALSE);
 
 if (thisSeq == NULL)
     freeDnaSeq(&seq);
 }
 
 void drawComplementArrow( struct hvGfx *hvg, int x, int y,
                                 int width, int height, MgFont *font)
 /* Draw arrow and create clickbox for complementing ruler bases */
 {
 boolean baseCmpl = cartUsualBooleanDb(cart, database, COMPLEMENT_BASES_VAR, FALSE);
 // reverse arrow when base complement doesn't match display
-char *text =  (baseCmpl == revCmplDisp) ? "--->" : "<---";
+char *text =  NULL;
+char *mouseOver = NULL;
+
+if (baseCmpl == revCmplDisp)
+    {
+        text = "Click to complement -->";
+        mouseOver = "Forward strand of genome is shown. Click to show the complement (not the reverse complement). Configure this track to show amino acids for three reading frames. Use the \"Reverse\" button below the image to reverse complement the sequence shown and to also show all annotations on the reverse strand.";
+    }
+else
+    {
+        text = "Click to complement <--";
+        mouseOver = "Reverse strand of genome is shown. Click to show the forward strand. Configure this track to show amino acids for three reading frames. Use the \"Reverse\" button below the image to reverse complement the sequence shown and to also show all annotations on the reverse strand.";
+    }
+
 hvGfxTextRight(hvg, x, y, width, height, MG_BLACK, font, text);
 mapBoxToggleComplement(hvg, x, y, width, height, NULL, chromName, winStart, winEnd,
-                       "complement bases");
+                       mouseOver);
 }
 
 struct track *chromIdeoTrack(struct track *trackList)
 /* Find chromosome ideogram track */
 {
 struct track *track;
 for(track = trackList; track != NULL; track = track->next)
     {
     if(sameString(trackHubSkipHubName(track->track), "cytoBandIdeo"))
 	{
 	if (hTableExists(database, track->table))
 	    return track;
 	else
 	    return NULL;
 	}