mirror of
https://github.com/mozilla/pdf.js.git
synced 2025-04-22 16:18:08 +02:00
Merge pull request #17586 from calixteman/editor_freehighlight_outline_inside
[Editor] Remove the outline which is inside the free highlight shape
This commit is contained in:
commit
245fd02141
2 changed files with 68 additions and 14 deletions
|
@ -135,9 +135,33 @@ class DrawLayer {
|
|||
path.setAttribute("d", outlines.toSVGPath());
|
||||
path.setAttribute("vector-effect", "non-scaling-stroke");
|
||||
|
||||
let maskId;
|
||||
if (outlines.free) {
|
||||
root.classList.add("free");
|
||||
const mask = DrawLayer._svgFactory.createElement("mask");
|
||||
defs.append(mask);
|
||||
maskId = `mask_p${this.pageIndex}_${id}`;
|
||||
mask.setAttribute("id", maskId);
|
||||
mask.setAttribute("maskUnits", "objectBoundingBox");
|
||||
const rect = DrawLayer._svgFactory.createElement("rect");
|
||||
mask.append(rect);
|
||||
rect.setAttribute("width", "1");
|
||||
rect.setAttribute("height", "1");
|
||||
rect.setAttribute("fill", "white");
|
||||
const use = DrawLayer._svgFactory.createElement("use");
|
||||
mask.append(use);
|
||||
use.setAttribute("href", `#${pathId}`);
|
||||
use.setAttribute("stroke", "none");
|
||||
use.setAttribute("fill", "black");
|
||||
use.setAttribute("fill-rule", "nonzero");
|
||||
}
|
||||
|
||||
const use1 = DrawLayer._svgFactory.createElement("use");
|
||||
root.append(use1);
|
||||
use1.setAttribute("href", `#${pathId}`);
|
||||
if (maskId) {
|
||||
use1.setAttribute("mask", `url(#${maskId})`);
|
||||
}
|
||||
const use2 = use1.cloneNode();
|
||||
root.append(use2);
|
||||
use1.classList.add("mainOutline");
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue