2e3cae2c2530ca3837f735ddfd30e7ab5a628416
tdreszer
  Fri Dec 9 17:03:01 2011 -0800
Chrome also has interference between dragAndDrop and subVisDD.
diff --git src/hg/lib/hui.c src/hg/lib/hui.c
index f314d3b..ae76ff1 100644
--- src/hg/lib/hui.c
+++ src/hg/lib/hui.c
@@ -3829,34 +3829,36 @@
 
 // Look for dividers, heirarchy, dimensions, sort and dragAndDrop!
 char **lastDivide = NULL;
 dividers_t *dividers = dividersSettingGet(parentTdb);
 if (dividers)
     lastDivide = needMem(sizeof(char*)*dividers->count);
 hierarchy_t *hierarchy = hierarchySettingGet(parentTdb);
 
 membersForAll_t* membersForAll = membersForAllSubGroupsGet(parentTdb,NULL);
 int dimCount=0,di;
 for(di=0;di<membersForAll->dimMax;di++) { if (membersForAll->members[di]) dimCount++; }
 sortOrder_t* sortOrder = sortOrderGet(cart,parentTdb);
 boolean preSorted = FALSE;
 boolean useDragAndDrop = sameOk("subTracks",trackDbSetting(parentTdb, "dragAndDrop"));
 #ifdef SUBTRACK_CFG
-if (useDragAndDrop)  // IE9 fails on subVisDD when dragAndDrop !
+if (useDragAndDrop)  // IE9 & Chrom fail on subVisDD when dragAndDrop !
     {
     char *browserVersion;
-    if (btIE == cgiClientBrowser(&browserVersion, NULL, NULL) && *browserVersion > '8')
+    enum browserType browserType = cgiClientBrowser(&browserVersion, NULL, NULL);
+    if ( browserType == btChrome
+    ||  (browserType == btIE  && *browserVersion > '8'))
         useDragAndDrop = FALSE;
     }
 #endif///def SUBTRACK_CFG
 char buffer[SMALLBUF];
 char *displaySubs = NULL;
 int subCount = slCount(subtrackRefList);
 #define LARGE_COMPOSITE_CUTOFF 30
 if (subCount > LARGE_COMPOSITE_CUTOFF)
     {
     safef(buffer,SMALLBUF,"%s.displaySubtracks",parentTdb->track);
     displaySubs = cartUsualString(cart, buffer,"some");              // track specific defaults to only selected
     }
 else
     {
     displaySubs = cartUsualString(cart, "displaySubtracks", "all");  // browser wide defaults to all