Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unify touch events callbacks on web with respect to Android #2923

Merged
merged 8 commits into from
May 28, 2024
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions src/web/handlers/FlingGestureHandler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,8 @@ export default class FlingGestureHandler extends GestureHandler {

super.onPointerDown(event);
this.newPointerAction();

this.tryToSendTouchEvent(event);
j-piasecki marked this conversation as resolved.
Show resolved Hide resolved
}

protected onPointerAdd(event: AdaptedEvent): void {
Expand Down
48 changes: 17 additions & 31 deletions src/web/handlers/GestureHandler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -288,33 +288,20 @@ export default abstract class GestureHandler implements IGestureHandler {
if (this.pointerType === PointerType.TOUCH) {
GestureHandlerOrchestrator.getInstance().cancelMouseAndPenGestures(this);
}

if (this.config.needsPointerData) {
this.sendTouchEvent(event);
}
j-piasecki marked this conversation as resolved.
Show resolved Hide resolved
}
// Adding another pointer to existing ones
protected onPointerAdd(event: AdaptedEvent): void {
if (this.config.needsPointerData) {
this.sendTouchEvent(event);
}
this.tryToSendTouchEvent(event);
}
protected onPointerUp(event: AdaptedEvent): void {
if (this.config.needsPointerData) {
this.sendTouchEvent(event);
}
this.tryToSendTouchEvent(event);
}
// Removing pointer, when there is more than one pointers
protected onPointerRemove(event: AdaptedEvent): void {
if (this.config.needsPointerData) {
this.sendTouchEvent(event);
}
this.tryToSendTouchEvent(event);
}
protected onPointerMove(event: AdaptedEvent): void {
this.tryToSendMoveEvent(false);
if (this.config.needsPointerData) {
this.sendTouchEvent(event);
}
this.tryToSendMoveEvent(false, event);
}
protected onPointerLeave(event: AdaptedEvent): void {
if (this.shouldCancelWhenOutside) {
Expand All @@ -329,43 +316,42 @@ export default abstract class GestureHandler implements IGestureHandler {
return;
}

if (this.config.needsPointerData) {
this.sendTouchEvent(event);
}
this.tryToSendTouchEvent(event);
}
protected onPointerEnter(event: AdaptedEvent): void {
if (this.config.needsPointerData) {
this.sendTouchEvent(event);
}
this.tryToSendTouchEvent(event);
}
protected onPointerCancel(event: AdaptedEvent): void {
if (this.config.needsPointerData) {
this.sendTouchEvent(event);
}
this.tryToSendTouchEvent(event);

this.cancel();
this.reset();
}
protected onPointerOutOfBounds(event: AdaptedEvent): void {
this.tryToSendMoveEvent(true);
if (this.config.needsPointerData) {
this.sendTouchEvent(event);
}
this.tryToSendMoveEvent(true, event);
}
protected onPointerMoveOver(_event: AdaptedEvent): void {
// used only by hover gesture handler atm
}
protected onPointerMoveOut(_event: AdaptedEvent): void {
// used only by hover gesture handler atm
}
private tryToSendMoveEvent(out: boolean): void {
private tryToSendMoveEvent(out: boolean, event: AdaptedEvent): void {
if (
this.enabled &&
this.active &&
(!out || (out && !this.shouldCancelWhenOutside))
) {
this.sendEvent(this.currentState, this.currentState);
}

this.tryToSendTouchEvent(event);
j-piasecki marked this conversation as resolved.
Show resolved Hide resolved
}

protected tryToSendTouchEvent(event: AdaptedEvent): void {
if (this.config.needsPointerData) {
this.sendTouchEvent(event);
}
}

public sendTouchEvent(event: AdaptedEvent): void {
Expand Down
2 changes: 2 additions & 0 deletions src/web/handlers/LongPressGestureHandler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,8 @@ export default class LongPressGestureHandler extends GestureHandler {
this.tryBegin(event);
this.tryActivate();
this.checkDistanceFail(event);

this.tryToSendTouchEvent(event);
}

protected onPointerMove(event: AdaptedEvent): void {
Expand Down
2 changes: 2 additions & 0 deletions src/web/handlers/ManualGestureHandler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ export default class ManualGestureHandler extends GestureHandler {
this.tracker.addToTracker(event);
super.onPointerDown(event);
this.begin();

this.tryToSendTouchEvent(event);
}

protected onPointerAdd(event: AdaptedEvent): void {
Expand Down
2 changes: 2 additions & 0 deletions src/web/handlers/NativeViewGestureHandler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,8 @@ export default class NativeViewGestureHandler extends GestureHandler {
this.tracker.addToTracker(event);
super.onPointerDown(event);
this.newPointerAction();

this.tryToSendTouchEvent(event);
}

protected onPointerAdd(event: AdaptedEvent): void {
Expand Down
4 changes: 3 additions & 1 deletion src/web/handlers/PanGestureHandler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -227,6 +227,8 @@ export default class PanGestureHandler extends GestureHandler {

this.tryBegin(event);
this.checkBegan();

this.tryToSendTouchEvent(event);
}

protected onPointerAdd(event: AdaptedEvent): void {
Expand Down Expand Up @@ -256,7 +258,6 @@ export default class PanGestureHandler extends GestureHandler {

protected onPointerUp(event: AdaptedEvent): void {
super.onPointerUp(event);

if (this.currentState === State.ACTIVE) {
this.lastX = this.tracker.getLastAvgX();
this.lastY = this.tracker.getLastAvgY();
Expand All @@ -271,6 +272,7 @@ export default class PanGestureHandler extends GestureHandler {
this.fail();
}
}

protected onPointerRemove(event: AdaptedEvent): void {
super.onPointerRemove(event);
this.tracker.removeFromTracker(event.pointerId);
Expand Down
2 changes: 2 additions & 0 deletions src/web/handlers/PinchGestureHandler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,8 @@ export default class PinchGestureHandler extends GestureHandler {
protected onPointerDown(event: AdaptedEvent): void {
this.tracker.addToTracker(event);
super.onPointerDown(event);

this.tryToSendTouchEvent(event);
}

protected onPointerAdd(event: AdaptedEvent): void {
Expand Down
2 changes: 2 additions & 0 deletions src/web/handlers/RotationGestureHandler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,8 @@ export default class RotationGestureHandler extends GestureHandler {
protected onPointerDown(event: AdaptedEvent): void {
this.tracker.addToTracker(event);
super.onPointerDown(event);

this.tryToSendTouchEvent(event);
}

protected onPointerAdd(event: AdaptedEvent): void {
Expand Down
2 changes: 2 additions & 0 deletions src/web/handlers/TapGestureHandler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,8 @@ export default class TapGestureHandler extends GestureHandler {
this.lastY = event.y;

this.updateState(event);

this.tryToSendTouchEvent(event);
}

protected onPointerAdd(event: AdaptedEvent): void {
Expand Down
Loading