Navigation Menu

Skip to content

Commit

Permalink
Interaction: implement end method
Browse files Browse the repository at this point in the history
Close #259
  • Loading branch information
taye committed Nov 5, 2015
1 parent 53db214 commit df963b0
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 7 deletions.
33 changes: 26 additions & 7 deletions src/Interaction.js
Expand Up @@ -495,6 +495,32 @@ class Interaction {
}
}

this.end(event);
}

/*\
* Interaction.end
[ method ]
*
* Stop the current action and fire an end event. Inertial movement does
* not happen.
*
- event (PointerEvent) #optional
**
| interact(target)
| .draggable(true)
| .on('move', function (event) {
| if (event.pageX > 1000) {
| // end the current action
| event.interaction.end();
| // stop all further listeners from being called
| event.stopImmediatePropagation();
| }
| });
\*/
end (event) {
event = event || this.prevEvent;

if (this.interacting()) {
signals.fire('end-' + this.prepared.name, {
event,
Expand Down Expand Up @@ -543,13 +569,6 @@ class Interaction {
this.inertiaStatus.resumeDx = this.inertiaStatus.resumeDy = 0;

modifiers.resetStatuses(this.modifierStatuses);

// remove pointers if their ID isn't in this.pointerIds
for (let i = 0; i < this.pointers.length; i++) {
if (utils.indexOf(this.pointerIds, utils.getPointerId(this.pointers[i])) === -1) {
this.pointers.splice(i, 1);
}
}
}

inertiaFrame () {
Expand Down
3 changes: 3 additions & 0 deletions src/actions/drag.js
Expand Up @@ -115,6 +115,9 @@ Interaction.signals.on('move-drag', function ({ interaction, event }) {

interaction.target.fire(dragEvent);
interaction.prevEvent = dragEvent;

// if the action was ended in a dragmove listener
if (!interaction.interacting()) { return false; }
});

Interaction.signals.on('end-drag', function ({ interaction, event }) {
Expand Down
3 changes: 3 additions & 0 deletions src/actions/gesture.js
Expand Up @@ -68,6 +68,9 @@ Interaction.signals.on('move-gesture', function ({ interaction, event }) {
}

interaction.prevEvent = gestureEvent;

// if the action was ended in a gesturemove listener
if (!interaction.interacting()) { return false; }
});

Interaction.signals.on('end-gesture', function ({ interaction, event }) {
Expand Down
3 changes: 3 additions & 0 deletions src/actions/resize.js
Expand Up @@ -282,6 +282,9 @@ Interaction.signals.on('move-resize', function ({ interaction, event }) {
interaction.target.fire(resizeEvent);

interaction.prevEvent = resizeEvent;

// if the action was ended in a resizemove listener
if (!interaction.interacting()) { return false; }
});

Interaction.signals.on('end-resize', function ({ interaction, event }) {
Expand Down

0 comments on commit df963b0

Please sign in to comment.