From 9c63d9ac8c185e24f247213780215cbbbc4cca17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Cchrisshank=E2=80=9D?= Date: Mon, 2 Dec 2024 23:14:19 -0800 Subject: [PATCH] rework shape listeners --- src/folk-shape.ts | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/folk-shape.ts b/src/folk-shape.ts index 14193c2..ad90c90 100644 --- a/src/folk-shape.ts +++ b/src/folk-shape.ts @@ -386,7 +386,7 @@ export class FolkShape extends HTMLElement { // ignore interactions from slotted elements. if (target !== this && !target.hasAttribute('part')) return; - target.addEventListener('pointermove', this); + this.addEventListener('pointermove', this); this.addEventListener('lostpointercapture', this); target.setPointerCapture(event.pointerId); @@ -397,8 +397,7 @@ export class FolkShape extends HTMLElement { return; } case 'pointermove': { - const target = event.target as HTMLElement; - + const target = event.composedPath()[0] as HTMLElement; if (target === null) return; if (target === this) { @@ -452,7 +451,7 @@ export class FolkShape extends HTMLElement { const target = event.composedPath()[0] as HTMLElement; const interaction = target.getAttribute('part') || 'move'; this.#internals.states.delete(interaction); - target.removeEventListener('pointermove', this); + this.removeEventListener('pointermove', this); this.removeEventListener('lostpointercapture', this); return; }