From 5d573eed456237521d5e298cb4dfacf5bea2524f Mon Sep 17 00:00:00 2001 From: Antoine Roy-Gobeil Date: Fri, 7 Sep 2018 14:17:08 -0400 Subject: [PATCH 1/3] compare legend width with pushed margins --- src/components/legend/draw.js | 4 +-- test/image/mocks/legend_large_margin.json | 40 +++++++++++++++++++++++ 2 files changed, 42 insertions(+), 2 deletions(-) create mode 100644 test/image/mocks/legend_large_margin.json diff --git a/src/components/legend/draw.js b/src/components/legend/draw.js index 4de2e679429..af16c453d3a 100644 --- a/src/components/legend/draw.js +++ b/src/components/legend/draw.js @@ -639,12 +639,12 @@ function computeLegendDimensions(gd, groups, traces) { }); // check if legend fits in one row - oneRowLegend = (fullLayout.width - (fullLayout.margin.r + fullLayout.margin.l)) > borderwidth + fullTracesWidth - traceGap; + oneRowLegend = (fullLayout.width - (fullLayout._size.r + fullLayout._size.l)) > borderwidth + fullTracesWidth - traceGap; traces.each(function(d) { var legendItem = d[0], traceWidth = oneRowLegend ? 40 + d[0].width : maxTraceWidth; - if((borderwidth + offsetX + traceGap + traceWidth) > (fullLayout.width - (fullLayout.margin.r + fullLayout.margin.l))) { + if((borderwidth + offsetX + traceGap + traceWidth) > (fullLayout.width - (fullLayout._size.r + fullLayout._size.l))) { offsetX = 0; rowHeight = rowHeight + maxTraceHeight; opts._height = opts._height + maxTraceHeight; diff --git a/test/image/mocks/legend_large_margin.json b/test/image/mocks/legend_large_margin.json new file mode 100644 index 00000000000..5fd21bdb68d --- /dev/null +++ b/test/image/mocks/legend_large_margin.json @@ -0,0 +1,40 @@ +{ + "data": [{ + "x": [1, 2, 3, 4], + "y": ["long y label long y label long y label", "a", "b", "c"], + "name": "trace 1" + }, + { + "x": [1.1, 2.1, 3.1, 4.1], + "y": ["long y label long y label long y label", "a", "b", "c"], + "name": "trace 1" + }, + { + "x": [1.2, 2.2, 3.2, 4.2], + "y": ["long y label long y label long y label", "a", "b", "c"], + "name": "trace 1" + }, + { + "x": [1.3, 2.3, 3.3, 4.3], + "y": ["long y label long y label long y label", "a", "b", "c"], + "name": "trace 1" + }, + { + "x": [1.4, 2.4, 3.4, 4.4], + "y": ["long y label long y label long y label", "a", "b", "c"], + "name": "trace 1" + } + ], + "layout": { + "width": 500, + "height": 500, + "legend": { + "orientation": "h", + "bgcolor": "#ffffff00" + }, + "yaxis": { + "automargin": true + } + + } +} From 9d8c158e17a4fead82156f9620c262b6225403a2 Mon Sep 17 00:00:00 2001 From: Antoine Roy-Gobeil Date: Fri, 7 Sep 2018 14:21:04 -0400 Subject: [PATCH 2/3] add baseline for legend_large_margin --- test/image/baselines/legend_large_margin.png | Bin 0 -> 37863 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 test/image/baselines/legend_large_margin.png diff --git a/test/image/baselines/legend_large_margin.png b/test/image/baselines/legend_large_margin.png new file mode 100644 index 0000000000000000000000000000000000000000..259e998ae2f13697920c9ce790eed2e6f615909e GIT binary patch literal 37863 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 E0PqTEV*mgE literal 0 HcmV?d00001 From dbea03d998fe4b040b9cd937faf03fd2d6275274 Mon Sep 17 00:00:00 2001 From: Antoine Roy-Gobeil Date: Fri, 7 Sep 2018 14:39:31 -0400 Subject: [PATCH 3/3] simplifies the check to see if legend fits --- src/components/legend/draw.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/legend/draw.js b/src/components/legend/draw.js index af16c453d3a..a7017fda0ac 100644 --- a/src/components/legend/draw.js +++ b/src/components/legend/draw.js @@ -639,12 +639,12 @@ function computeLegendDimensions(gd, groups, traces) { }); // check if legend fits in one row - oneRowLegend = (fullLayout.width - (fullLayout._size.r + fullLayout._size.l)) > borderwidth + fullTracesWidth - traceGap; + oneRowLegend = fullLayout._size.w > borderwidth + fullTracesWidth - traceGap; traces.each(function(d) { var legendItem = d[0], traceWidth = oneRowLegend ? 40 + d[0].width : maxTraceWidth; - if((borderwidth + offsetX + traceGap + traceWidth) > (fullLayout.width - (fullLayout._size.r + fullLayout._size.l))) { + if((borderwidth + offsetX + traceGap + traceWidth) > fullLayout._size.w) { offsetX = 0; rowHeight = rowHeight + maxTraceHeight; opts._height = opts._height + maxTraceHeight;