Skip to content

Commit

Permalink
fix: rename alwaysTriggerPointerEventOnCanvas
Browse files Browse the repository at this point in the history
  • Loading branch information
xiaoiver committed Apr 17, 2023
1 parent 0530def commit 72e9073
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 7 deletions.
4 changes: 2 additions & 2 deletions packages/g-lite/src/Canvas.ts
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,7 @@ export class Canvas extends EventTarget implements ICanvas {
supportsTouchEvents,
supportsCSSTransform,
useNativeClickEvent,
alwaysTriggerPointermoveEvent,
alwaysTriggerPointerEventOnCanvas,
isTouchEvent,
isMouseEvent,
} = config;
Expand Down Expand Up @@ -223,7 +223,7 @@ export class Canvas extends EventTarget implements ICanvas {
document,
supportsCSSTransform,
useNativeClickEvent,
alwaysTriggerPointermoveEvent,
alwaysTriggerPointerEventOnCanvas,
});

this.initDefaultCamera(canvasWidth, canvasHeight);
Expand Down
20 changes: 17 additions & 3 deletions packages/g-lite/src/services/EventService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -209,7 +209,14 @@ export class EventService {
// }

const now = performance.now();
const e = this.createPointerEvent(from);
const e = this.createPointerEvent(
from,
undefined,
undefined,
this.context.config.alwaysTriggerPointerEventOnCanvas
? this.rootTarget
: undefined,
);

this.dispatchEvent(e, 'pointerup');

Expand Down Expand Up @@ -317,7 +324,7 @@ export class EventService {
from,
undefined,
undefined,
this.context.config.alwaysTriggerPointermoveEvent
this.context.config.alwaysTriggerPointerEventOnCanvas
? this.rootTarget
: undefined,
);
Expand Down Expand Up @@ -605,7 +612,14 @@ export class EventService {
};

onPointerCancel = (from: FederatedPointerEvent) => {
const e = this.createPointerEvent(from);
const e = this.createPointerEvent(
from,
undefined,
undefined,
this.context.config.alwaysTriggerPointerEventOnCanvas
? this.rootTarget
: undefined,
);

this.dispatchEvent(e);
this.freeEvent(e);
Expand Down
4 changes: 2 additions & 2 deletions packages/g-lite/src/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -458,9 +458,9 @@ export interface CanvasConfig {
useNativeClickEvent?: boolean;

/**
* Pointermove event will get triggered even outside Canvas.
* Pointermove / up / cancel event will get triggered even outside Canvas.
*/
alwaysTriggerPointermoveEvent?: boolean;
alwaysTriggerPointerEventOnCanvas?: boolean;

/**
* Should we account for CSS Transform applied on container?
Expand Down
5 changes: 5 additions & 0 deletions packages/g-plugin-dom-interaction/src/DOMInteractionPlugin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,11 @@ export class DOMInteractionPlugin implements RenderingPlugin {
$el.addEventListener('pointerleave', onPointerOut, true);
$el.addEventListener('pointerover', onPointerOver, true);
runtime.globalThis.addEventListener('pointerup', onPointerUp, true);
runtime.globalThis.addEventListener(
'pointercancel',
onPointerCancel,
true,
);
};

const addTouchEventListener = ($el: HTMLElement) => {
Expand Down

0 comments on commit 72e9073

Please sign in to comment.