33deddb49d40819644e5de797cbc217b89b9dc9d hiram Mon Dec 18 14:46:37 2023 -0800 make the chromInfo table header remain visible during scrolling, much more convenient. no redmine diff --git src/hg/hgTracks/hgTracks.c src/hg/hgTracks/hgTracks.c index 0b1bf59..d171319 100644 --- src/hg/hgTracks/hgTracks.c +++ src/hg/hgTracks/hgTracks.c @@ -10902,50 +10902,52 @@ else dyStringPrintf(title, "%s %s (%s) Browser Sequences", trackHubSkipHubName(hOrganism(database)), freeze, trackHubSkipHubName(database)); webStartWrapperDetailedNoArgs(cart, database, "", title->string, FALSE, FALSE, FALSE, FALSE); printf("<FORM ACTION=\"%s\" NAME=\"posForm\" METHOD=GET>\n", hgTracksName()); cartSaveSession(cart); puts("Enter a position, or click on a sequence name to view the entire " "sequence in the genome browser.<P>"); puts("position "); hTextVar("position", addCommasToPos(database, position), 30); cgiMakeButton("Submit", "submit"); puts("<P>"); hTableStart(); +puts("<thead style='position:sticky; top:0; background-color: white;'>"); cgiSimpleTableRowStart(); cgiSimpleTableFieldStart(); puts("Sequence name "); cgiTableFieldEnd(); cgiSimpleTableFieldStart(); puts("Length (bp) including gaps "); cgiTableFieldEnd(); if (hTableExists(database, "chromAlias")) { cgiSimpleTableFieldStart(); puts("alias sequence names "); cgiTableFieldEnd(); } else if (hasAlias) { cgiSimpleTableFieldStart(); puts("alias sequence names "); cgiTableFieldEnd(); } cgiTableRowEnd(); +puts("</thead>"); if (sameString(database,"hg38")) chromInfoRowsChromExt("withAltRandom"); else if (trackHubDatabase(database)) chromInfoRowsNonChrom(hasAlias, 1000); else if ((startsWith("chr", defaultChrom) || startsWith("Group", defaultChrom)) && hChromCount(database) < 100) chromInfoRowsChrom(); else chromInfoRowsNonChrom(hasAlias, 1000); chromSizesDownloadRow(hasAlias, aliasFile, chromSizesFile); hTableEnd(); cgiDown(0.9);