3e902a1d402062b326fee458ca6fafc02cdcaa64
kate
  Mon Jan 14 16:08:16 2013 -0800
Limit override of displaySubtracks setting to large composites having a matrix (so large tracks w/o matrix can default show all subtracks)
diff --git src/hg/lib/hui.c src/hg/lib/hui.c
index ccece19..176f0f5 100644
--- src/hg/lib/hui.c
+++ src/hg/lib/hui.c
@@ -3966,32 +3966,34 @@
 
 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"));
 char buffer[SMALLBUF];
 char *displaySubs = NULL;
 int subCount = slCount(subtrackRefList);
 #define LARGE_COMPOSITE_CUTOFF 30
-if (subCount > LARGE_COMPOSITE_CUTOFF)
+if (subCount > LARGE_COMPOSITE_CUTOFF && membersForAll->dimensions != NULL)
     {
+    // ignore displaySubtracks setting for large composites with a matrix as
+    // matrix effectively shows all
     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
     }
 boolean displayAll = sameString(displaySubs, "all");
 
 // Determine whether there is a restricted until date column
 boolean restrictions = FALSE;
 for (subtrackRef = subtrackRefList; subtrackRef != NULL; subtrackRef = subtrackRef->next)
     {
     subtrack = subtrackRef->val;
     (void)metadataForTable(db,subtrack,NULL);