mirror of
https://github.com/konvajs/konva.git
synced 2025-06-28 01:57:14 +08:00
Fix tests, collect click events and fire after pointerup
This commit is contained in:
parent
8e820f2be4
commit
615f35c804
27
src/Stage.ts
27
src/Stage.ts
@ -662,6 +662,7 @@ export class Stage extends Container<Layer> {
|
||||
const clickEndShape = this[eventType + 'ClickEndShape'];
|
||||
var processedShapesIds = {};
|
||||
let triggeredOnShape = false;
|
||||
const stageClickEvents = [];
|
||||
this._changedPointerPositions.forEach((pos) => {
|
||||
const shape = (PointerEvents.getCapturedShape(pos.id) ||
|
||||
this.getIntersection(pos)) as Shape;
|
||||
@ -710,34 +711,36 @@ export class Stage extends Container<Layer> {
|
||||
}
|
||||
} else {
|
||||
this[eventType + 'ClickEndShape'] = null;
|
||||
|
||||
this._fire(events.pointerup, {
|
||||
evt: evt,
|
||||
target: this,
|
||||
currentTarget: this,
|
||||
pointerId: pointerId,
|
||||
});
|
||||
|
||||
if (Konva['_' + eventType + 'ListenClick']) {
|
||||
this._fire(events.pointerclick, {
|
||||
stageClickEvents.push([events.pointerclick, {
|
||||
evt: evt,
|
||||
target: this,
|
||||
currentTarget: this,
|
||||
pointerId,
|
||||
});
|
||||
}]);
|
||||
}
|
||||
|
||||
if (fireDblClick) {
|
||||
this._fire(events.pointerdblclick, {
|
||||
stageClickEvents.push([events.pointerdblclick, {
|
||||
evt: evt,
|
||||
target: this,
|
||||
currentTarget: this,
|
||||
pointerId,
|
||||
});
|
||||
}]);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
if (!triggeredOnShape) {
|
||||
this._fire(events.pointerup, {
|
||||
evt: evt,
|
||||
target: this,
|
||||
currentTarget: this,
|
||||
pointerId: this._changedPointerPositions[0].id,
|
||||
});
|
||||
stageClickEvents.forEach(([e, evt]) => this._fire(e, evt))
|
||||
}
|
||||
|
||||
Konva['_' + eventType + 'ListenClick'] = false;
|
||||
|
||||
// always call preventDefault for desktop events because some browsers
|
||||
|
Loading…
Reference in New Issue
Block a user