From 5b837a29e0024f92affcadd50b4cff99ded5ff71 Mon Sep 17 00:00:00 2001 From: kurkle Date: Mon, 17 Jan 2022 16:15:59 +0200 Subject: [PATCH] Fix clipping + modify fixture to catch --- src/types/box.js | 23 +++++++++++++---------- test/fixtures/box/label.js | 16 ++++------------ test/fixtures/box/label.png | Bin 20904 -> 24314 bytes 3 files changed, 17 insertions(+), 22 deletions(-) diff --git a/src/types/box.js b/src/types/box.js index 45c791abf..328e4b64b 100644 --- a/src/types/box.js +++ b/src/types/box.js @@ -18,22 +18,25 @@ export default class BoxAnnotation extends Element { } drawLabel(ctx) { - const {x, y, width, height, options: {label: labelOpts}} = this; - const halfBorder = labelOpts.borderWidth / 2; - ctx.save(); - ctx.beginPath(); - ctx.rect(x + halfBorder, y + halfBorder, width - halfBorder, height - halfBorder); - ctx.clip(); - const position = toPosition(labelOpts.position); - const padding = toPadding(labelOpts.padding); - const labelSize = measureLabelSize(ctx, labelOpts); + const {x, y, width, height, options} = this; + const {label, borderWidth} = options; + const halfBorder = borderWidth / 2; + const position = toPosition(label.position); + const padding = toPadding(label.padding); + const labelSize = measureLabelSize(ctx, label); const labelRect = { x: calculateX(this, labelSize, position, padding), y: calculateY(this, labelSize, position, padding), width: labelSize.width, height: labelSize.height }; - drawLabel(ctx, labelRect, labelOpts); + + ctx.save(); + ctx.beginPath(); + ctx.rect(x + halfBorder + padding.left, y + halfBorder + padding.top, + width - borderWidth - padding.width, height - borderWidth - padding.height); + ctx.clip(); + drawLabel(ctx, labelRect, label); ctx.restore(); } diff --git a/test/fixtures/box/label.js b/test/fixtures/box/label.js index 144c470e1..612d2d1a2 100644 --- a/test/fixtures/box/label.js +++ b/test/fixtures/box/label.js @@ -18,8 +18,6 @@ module.exports = { annotations: { box1: { type: 'box', - xScaleID: 'x', - yScaleID: 'y', xMin: 1.5, xMax: 3.5, yMin: 5, @@ -35,26 +33,22 @@ module.exports = { }, box2: { type: 'box', - xScaleID: 'x', - yScaleID: 'y', xMin: 'May', xMax: 'July', yMin: 11, yMax: 15, backgroundColor: 'rgba(255, 99, 132, 0.5)', - borderColor: 'rgba(255, 99, 132)', - borderDash: [6, 6], - borderWidth: 5, + borderColor: 'black', + borderWidth: 15, label: { enabled: true, - content: 'This is a label', + borderColor: 'green', + content: 'This label tests clipping', position: 'start' } }, box3: { type: 'box', - xScaleID: 'x', - yScaleID: 'y', xMin: -0.5, xMax: 'May', yMin: 16, @@ -71,8 +65,6 @@ module.exports = { }, box4: { type: 'box', - xScaleID: 'x', - yScaleID: 'y', xMin: 'June', xMax: 'July', yMin: 5, diff --git a/test/fixtures/box/label.png b/test/fixtures/box/label.png index c3ca1ad5f12bb55b21328afe27c145d8474d53d4..7408bbf869e49f95e03e668bb10c3bdb860e256c 100644 GIT binary patch literal 24314 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�u%Jm}u+?2#u& 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 lBHJbbn7v