perform shadow check if element outside viewdom node

This commit is contained in:
Afonso Matos 2021-08-23 11:25:14 +01:00
parent 5489d1ba16
commit 10d20a7a01

View file

@ -176,7 +176,16 @@ export class MouseHandler extends ViewEventHandler {
}
protected _createMouseTarget(e: EditorMouseEvent, testEventTarget: boolean): IMouseTarget {
return this.mouseTargetFactory.createMouseTarget(this.viewHelper.getLastRenderData(), e.editorPos, e.pos, testEventTarget ? e.target : null);
let target = e.target;
if (!this.viewHelper.viewDomNode.contains(target)) {
const shadowRoot = dom.getShadowRoot(this.viewHelper.viewDomNode);
if (shadowRoot) {
target = (<any>shadowRoot).elementsFromPoint(e.posx, e.posy).find(
(el: Element) => this.viewHelper.viewDomNode.contains(el)
);
}
}
return this.mouseTargetFactory.createMouseTarget(this.viewHelper.getLastRenderData(), e.editorPos, e.pos, testEventTarget ? target : null);
}
private _getMouseColumn(e: EditorMouseEvent): number {