48c599cf257bef018784ab7262db9bc4011629df
max
  Tue Mar 12 14:50:16 2024 -0700
fix pix auto-detection breaking rtracklayer, refs #33214

diff --git src/hg/hgTracks/hgTracks.c src/hg/hgTracks/hgTracks.c
index 2f48c6c..9cae016 100644
--- src/hg/hgTracks/hgTracks.c
+++ src/hg/hgTracks/hgTracks.c
@@ -11133,31 +11133,32 @@
  * tableHeaderForm element and un-hide it. Less obtrusive than a warn() message but still hard to miss. */
 {
 jsInlineF("notifBoxSetup(\"hgTracks\", \"%s\", \"%s\");\n", msgId, msg);
 jsInlineF("notifBoxShow(\"hgTracks\", \"%s\");\n", msgId);
 }
 
 extern boolean issueBotWarning;
 
 void doMiddle(struct cart *theCart)
 /* Print the body of an html file.   */
 {
 cart = theCart;
 
 if (isEmpty(cartOptionalString(cart, "pix")) && 
     !sameOk(cgiRequestMethod(NULL), "POST") && // page reload after POST would lose all vars
-    !cartUsualBoolean(cart, "hgt.trackImgOnly", FALSE)) // do not do this if we're hgRenderTracks  = no Javascript
+    !cartUsualBoolean(cart, "hgt.trackImgOnly", FALSE) && // skip if we're hgRenderTracks  = no Javascript
+    !sameOk(cgiUserAgent(), "rtracklayer")) // rtracklayer has no javascript, so skip, see https://github.com/lawremi/rtracklayer/issues/113
 {
     jsIncludeFile("jquery.js", NULL);
     jsIncludeFile("utils.js", NULL);
     jsInlineF("addPixAndReloadPage();");
     return;
 }
 
 measureTiming = hPrintStatus() && isNotEmpty(cartOptionalString(cart, "measureTiming"));
 if (measureTiming)
     measureTime("Startup (bottleneck delay %d ms, not applied if under %d) ", botDelayMillis, hgBotDelayCurrWarnMs()) ;
 
 char *mouseOverEnabled = cfgOptionDefault("mouseOverEnabled", "on");
 if (sameWordOk(mouseOverEnabled, "on"))
     {
     /* can not use mouseOver in any virtual mode */