2aa8c0e15867c77a3e91f0f918482497d005ffab
hiram
  Thu Jan 14 14:03:44 2021 -0800
do not allow wiggle mouse over when in multi region mode refs #21980

diff --git src/hg/hgTracks/hgTracks.c src/hg/hgTracks/hgTracks.c
index ffea7a3..a49db1c 100644
--- src/hg/hgTracks/hgTracks.c
+++ src/hg/hgTracks/hgTracks.c
@@ -10560,41 +10560,46 @@
 }
 
 extern boolean issueBotWarning;
 
 void doMiddle(struct cart *theCart)
 /* Print the body of an html file.   */
 {
 cart = theCart;
 measureTiming = hPrintStatus() && isNotEmpty(cartOptionalString(cart, "measureTiming"));
 if (measureTiming)
     measureTime("Startup (bottleneck %d ms) ", botDelayMillis);
 
 char *mouseOverEnabled = cfgOption("mouseOverEnabled");
 if (sameWordOk(mouseOverEnabled, "on"))
     {
+    /* can not use mouseOver in any virtual mode */
+    char *isMultiRegion = cartUsualString(cart, "virtModeType", "default");
+    if (sameWordOk(isMultiRegion, "default"))
+	{
 	enableMouseOver = TRUE;
 	/* mouseOverJsonFile will be initializes and created at the same
 	 * time as the browser .png image file
 	 */
 	mouseOverJson = jsonWriteNew();
 	jsonWriteObjectStart(mouseOverJson, NULL);
 	/* this jsonWrite structure will finish off upon successful exit.
 	 * each track will start a list with the track name:
 	 *   jsonWriteListStart(mouseOverJson, tg->track);
 	 */
 	}
+    }
 else
     enableMouseOver = FALSE;
 
 if (issueBotWarning)
     {
     char *ip = getenv("REMOTE_ADDR");
     botDelayMessage(ip, botDelayMillis);
     }
 
 char *debugTmp = NULL;
 /* Uncomment this to see parameters for debugging. */
 /* struct dyString *state = NULL; */
 /* Initialize layout and database. */
 if (measureTiming)
     measureTime("Get cart of %d for user:%s session:%s", theCart->hash->elCount,