Skip to content

Commit 0806a9a

Browse files
committed
Ensure opt.tracegroupgap is added to legend rather than traceGap, refactor of code surrounding y offsets
1 parent 9dfdedd commit 0806a9a

File tree

2 files changed

+8
-12
lines changed

2 files changed

+8
-12
lines changed

src/components/legend/draw.js

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -615,8 +615,8 @@ function computeLegendDimensions(gd, groups, traces) {
615615
maxWidth += 40;
616616

617617
var groupXOffsets = [opts._width];
618-
var rowHeights = [];
619-
var rowNum = 1;
618+
var groupYOffsets = [];
619+
var rowNum = 0;
620620
for(var i = 0, n = groupData.length; i < n; i++) {
621621

622622
if(fullLayout._size.w < (borderwidth + opts._width + traceGap + maxWidth)) {
@@ -627,20 +627,15 @@ function computeLegendDimensions(gd, groups, traces) {
627627
opts._width += maxWidth + borderwidth;
628628
}
629629

630-
var currRowHeight = ((rowNum - 1) * maxHeight);
630+
var rowYOffset = (rowNum * maxHeight);
631+
rowYOffset += rowNum > 0 ? opts.tracegroupgap : 0;
631632

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);
639634
groupXOffsets.push(opts._width);
640635
}
641636

642637
groups.each(function(d, i) {
643-
Drawing.setTranslate(this, groupXOffsets[i], rowHeights[i]);
638+
Drawing.setTranslate(this, groupXOffsets[i], groupYOffsets[i]);
644639
});
645640

646641
groups.each(function() {
@@ -660,7 +655,8 @@ function computeLegendDimensions(gd, groups, traces) {
660655
});
661656
});
662657

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;
664660

665661
var maxOffset = Math.max.apply(null, groupXOffsets);
666662
opts._width = maxOffset + maxWidth + 40;
Loading

0 commit comments

Comments
 (0)