From: Jukka Kurkela Date: Sat, 10 Apr 2021 12:58:39 +0000 (+0300) Subject: Consider dynamically positioned scales for padding (#8868) X-Git-Tag: v3.1.0~10 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=1ffdecfe6840a4becc20d9207f17ce0032890ed8;p=thirdparty%2FChart.js.git Consider dynamically positioned scales for padding (#8868) --- diff --git a/src/core/core.layouts.js b/src/core/core.layouts.js index 5b8ef42e5..dfd0dd31b 100644 --- a/src/core/core.layouts.js +++ b/src/core/core.layouts.js @@ -93,16 +93,15 @@ function updateDims(chartArea, params, layout) { const box = layout.box; const maxPadding = chartArea.maxPadding; - if (isObject(layout.pos)) { - // dynamically placed boxes are not considered - return {same: false, other: false}; - } - if (layout.size) { - // this layout was already counted for, lets first reduce old size - chartArea[layout.pos] -= layout.size; + // dynamically placed boxes size is not considered + if (!isObject(layout.pos)) { + if (layout.size) { + // this layout was already counted for, lets first reduce old size + chartArea[layout.pos] -= layout.size; + } + layout.size = layout.horizontal ? box.height : box.width; + chartArea[layout.pos] += layout.size; } - layout.size = layout.horizontal ? box.height : box.width; - chartArea[layout.pos] += layout.size; if (box.getPadding) { updateMaxPadding(maxPadding, box.getPadding()); diff --git a/test/fixtures/core.scale/x-axis-position-dynamic-margin.js b/test/fixtures/core.scale/x-axis-position-dynamic-margin.js new file mode 100644 index 000000000..7e8bf6e6e --- /dev/null +++ b/test/fixtures/core.scale/x-axis-position-dynamic-margin.js @@ -0,0 +1,27 @@ +module.exports = { + config: { + type: 'line', + options: { + scales: { + x: { + labels: ['Left Label', 'Center Label', 'Right Label'], + position: { + y: 30 + }, + }, + y: { + display: false, + min: -100, + max: 100, + } + } + } + }, + options: { + canvas: { + height: 256, + width: 512 + }, + spriteText: true + } +}; diff --git a/test/fixtures/core.scale/x-axis-position-dynamic-margin.png b/test/fixtures/core.scale/x-axis-position-dynamic-margin.png new file mode 100644 index 000000000..3dffa316d Binary files /dev/null and b/test/fixtures/core.scale/x-axis-position-dynamic-margin.png differ diff --git a/test/fixtures/core.scale/x-axis-position-dynamic.png b/test/fixtures/core.scale/x-axis-position-dynamic.png index 62fc3ec86..bbebdd33b 100644 Binary files a/test/fixtures/core.scale/x-axis-position-dynamic.png and b/test/fixtures/core.scale/x-axis-position-dynamic.png differ