77663f3ad7d665b98a3fea4c94c1429e92928431
hiram
  Fri Sep 19 13:00:13 2014 -0700
allow hg.conf override of 5000 pixel wide limit refs #10411
diff --git src/hg/lib/trackLayout.c src/hg/lib/trackLayout.c
index 4a7da2e..4b774b6 100644
--- src/hg/lib/trackLayout.c
+++ src/hg/lib/trackLayout.c
@@ -1,70 +1,76 @@
 /* trackLayout - this controls the dimensions of the graphic
  * for the genome browser.  Also used for the genome view. */
 
 /* Copyright (C) 2014 The Regents of the University of California 
  * See README in this or parent directory for licensing information. */
 
 #include "common.h"
 #include "memgfx.h"
 #include "cart.h"
 #include "hgConfig.h"
 #include "hCommon.h"
 #include "trackLayout.h"
 
 
 
 void trackLayoutSetPicWidth(struct trackLayout *tl, char *s)
 /* Set pixel width from ascii string. */
 {
+int maxWidth = MAX_DISPLAY_PIXEL_WIDTH;
+char *maxDisplayPixelWidth = cfgOptionDefault("maxDisplayPixelWidth", NULL);
+
+if (isNotEmpty(maxDisplayPixelWidth))
+   maxWidth = sqlUnsigned(maxDisplayPixelWidth);
+
 if (s != NULL && isdigit(s[0]))
     {
     tl->picWidth = atoi(s);
 #ifdef LOWELAB
     if (tl->picWidth > 60000)
       tl->picWidth = 60000;
 #else
-    if (tl->picWidth > 5000)
-      tl->picWidth = 5000;   
+    if (tl->picWidth > maxWidth)
+      tl->picWidth = maxWidth;
 #endif
     if (tl->picWidth < 320)
         tl->picWidth = 320;
     }
 tl->trackWidth = tl->picWidth - tl->leftLabelWidth;
 }
 
 boolean trackLayoutInclFontExtras()
 /* Check if fonts.extra is set to use "yes" in the config.  This enables
  * extra fonts and related options that are not part of the public browser */
 {
 static boolean first = TRUE;
 static boolean enabled = FALSE;
 if (first)
     {
     char *val = cfgOptionDefault("fonts.extra", NULL);
     if (val != NULL)
         enabled = sameString(val, "yes");
     first = FALSE;
     }
 return enabled;
 }
 
 void trackLayoutInit(struct trackLayout *tl, struct cart *cart)
 /* Initialize layout around small font and a picture about 600 pixels
  * wide, but this can be overridden by cart. */
 {
 char *fontType = "medium";
 boolean fontExtras = trackLayoutInclFontExtras();
 if (fontExtras)
     fontType = cartUsualString(cart, "fontType", fontType);
 
 tl->textSize = mgFontSizeBackwardsCompatible(cartUsualString(cart, textSizeVar, "small"));
 MgFont *font = mgFontForSizeAndStyle(tl->textSize, fontType);
 tl->font = font;
 tl->mWidth = mgFontStringWidth(font, "M");
 tl->nWidth = mgFontStringWidth(font, "n");
 tl->fontHeight = mgFontLineHeight(font);
 tl->barbHeight = tl->fontHeight/4;
 tl->barbSpacing = (tl->fontHeight+1)/2;
 tl->picWidth = hgDefaultPixWidth;
 trackLayoutSetPicWidth(tl, cartOptionalString(cart, "pix"));
 }