@@ -615,8 +615,8 @@ function computeLegendDimensions(gd, groups, traces) {
615
615
maxWidth += 40 ;
616
616
617
617
var groupXOffsets = [ opts . _width ] ;
618
- var rowHeights = [ ] ;
619
- var rowNum = 1 ;
618
+ var groupYOffsets = [ ] ;
619
+ var rowNum = 0 ;
620
620
for ( var i = 0 , n = groupData . length ; i < n ; i ++ ) {
621
621
622
622
if ( fullLayout . _size . w < ( borderwidth + opts . _width + traceGap + maxWidth ) ) {
@@ -627,20 +627,15 @@ function computeLegendDimensions(gd, groups, traces) {
627
627
opts . _width += maxWidth + borderwidth ;
628
628
}
629
629
630
- var currRowHeight = ( ( rowNum - 1 ) * maxHeight ) ;
630
+ var rowYOffset = ( rowNum * maxHeight ) ;
631
+ rowYOffset += rowNum > 0 ? opts . tracegroupgap : 0 ;
631
632
632
- var length = groupData [ i ] . length ;
633
- var y = ( ( 1 - ( length / maxItems ) ) * maxHeight ) ;
634
- currRowHeight = currRowHeight > ( rowNum - 1 * maxHeight ) ? ( rowNum - 1 ) * maxHeight : y ;
635
-
636
- currRowHeight += rowNum > 1 ? opts . tracegroupgap : 0 ;
637
-
638
- rowHeights . push ( currRowHeight ) ;
633
+ groupYOffsets . push ( rowYOffset ) ;
639
634
groupXOffsets . push ( opts . _width ) ;
640
635
}
641
636
642
637
groups . each ( function ( d , i ) {
643
- Drawing . setTranslate ( this , groupXOffsets [ i ] , rowHeights [ i ] ) ;
638
+ Drawing . setTranslate ( this , groupXOffsets [ i ] , groupYOffsets [ i ] ) ;
644
639
} ) ;
645
640
646
641
groups . each ( function ( ) {
@@ -660,7 +655,8 @@ function computeLegendDimensions(gd, groups, traces) {
660
655
} ) ;
661
656
} ) ;
662
657
663
- opts . _height = 10 + ( borderwidth * 2 ) + ( rowNum * maxHeight ) + ( ( rowNum - 1 ) * traceGap ) ;
658
+ var maxYLegend = groupYOffsets [ groupYOffsets . length - 1 ] + maxHeight ;
659
+ opts . _height = 10 + ( borderwidth * 2 ) + maxYLegend ;
664
660
665
661
var maxOffset = Math . max . apply ( null , groupXOffsets ) ;
666
662
opts . _width = maxOffset + maxWidth + 40 ;
0 commit comments