* $wgSVGMaxSize is now applied to the smaller of width or height, making very wide...
authorBrion Vibber <brion@users.mediawiki.org>
Tue, 2 Aug 2011 14:13:51 +0000 (14:13 +0000)
committerBrion Vibber <brion@users.mediawiki.org>
Tue, 2 Aug 2011 14:13:51 +0000 (14:13 +0000)
RELEASE-NOTES-1.18
includes/media/SVG.php

index f7dfaba..16d9f1b 100644 (file)
@@ -433,6 +433,7 @@ production.
   param is only present in hash.
 * Installer checked for magic_quotes_runtime instead of register_globals.
 * (bug 30131) XCache with variable caching disabled no longer used for variable caching (CACHE_ACCEL)
+* $wgSVGMaxSize is now applied to the smaller of width or height, making very wide pano/timeline/diagram SVGs renderable at saner sizes
 
 === API changes in 1.18 ===
 * BREAKING CHANGE: action=watch now requires POST and token.
index bb2d47d..9a32cf6 100644 (file)
@@ -58,12 +58,21 @@ class SvgHandler extends ImageHandler {
                if ( !parent::normaliseParams( $image, $params ) ) {
                        return false;
                }
-               # Don't make an image bigger than wgMaxSVGSize
-               if ( $params['physicalWidth'] > $wgSVGMaxSize ) {
-                       $srcWidth = $image->getWidth( $params['page'] );
-                       $srcHeight = $image->getHeight( $params['page'] );
-                       $params['physicalWidth'] = $wgSVGMaxSize;
-                       $params['physicalHeight'] = File::scaleHeight( $srcWidth, $srcHeight, $wgSVGMaxSize );
+               # Don't make an image bigger than wgMaxSVGSize on the smaller side
+               if ( $params['physicalWidth'] <= $params['physicalHeight'] ) {
+                       if ( $params['physicalWidth'] > $wgSVGMaxSize ) {
+                               $srcWidth = $image->getWidth( $params['page'] );
+                               $srcHeight = $image->getHeight( $params['page'] );
+                               $params['physicalWidth'] = $wgSVGMaxSize;
+                               $params['physicalHeight'] = File::scaleHeight( $srcWidth, $srcHeight, $wgSVGMaxSize );
+                       }
+               } else {
+                       if ( $params['physicalHeight'] > $wgSVGMaxSize ) {
+                               $srcWidth = $image->getWidth( $params['page'] );
+                               $srcHeight = $image->getHeight( $params['page'] );
+                               $params['physicalWidth'] = File::scaleHeight( $srcHeight, $srcWidth, $wgSVGMaxSize );
+                               $params['physicalHeight'] = $wgSVGMaxSize;
+                       }
                }
                return true;
        }