272ce7d17ccd6584fe03f8e226cd32c77ff900c1 hiram Thu Aug 5 10:28:28 2021 -0700 do not try to open the json mouseOver file when it is not possible refs #27954 diff --git src/hg/hgTracks/hgTracks.c src/hg/hgTracks/hgTracks.c index e6cc64a..a661d59 100644 --- src/hg/hgTracks/hgTracks.c +++ src/hg/hgTracks/hgTracks.c @@ -10889,31 +10889,32 @@ jsonObjectAdd(jsonForClient, "measureTiming", newJsonBoolean(measureTiming)); // js code needs to know if a highlightRegion is defined for this db checkAddHighlight(); // call again in case tracksDisplay's call to resolvePosition changed vars char *highlightDef = cartOptionalString(cart, "highlight"); if (highlightDef) jsonObjectAdd(jsonForClient, "highlight", newJsonString(highlightDef)); jsonObjectAdd(jsonForClient, "enableHighlightingDialog", newJsonBoolean(cartUsualBoolean(cart, "enableHighlightingDialog", TRUE))); struct dyString *dy = dyStringNew(1024); jsonDyStringPrint(dy, (struct jsonElement *) jsonForClient, "hgTracks", 0); jsInline(dy->string); dyStringFree(&dy); dy = dyStringNew(1024); -if (enableMouseOver) +// do not have a JsonFile available when PDF/PS output +if (enableMouseOver && isNotEmpty(mouseOverJsonFile->forCgi)) { jsonWriteObjectEnd(mouseOverJson); /* if any data was written, it is longer than 4 bytes */ if (strlen(mouseOverJson->dy->string) > 4) { FILE *trashJson = mustOpen(mouseOverJsonFile->forCgi, "w"); fputs(mouseOverJson->dy->string,trashJson); carefulClose(&trashJson); } hPrintf("
\n"); hPrintf("
\n"); dyStringPrintf(dy, "window.browserTextSize=%s;\n", tl.textSize); dyStringPrintf(dy, "window.mouseOverEnabled=true;\n"); }