diff --git a/src/canvas.class.js b/src/canvas.class.js index 01d62e89..68c34aba 100644 --- a/src/canvas.class.js +++ b/src/canvas.class.js @@ -1133,21 +1133,25 @@ * @private */ _fireOverOutEvents: function(target, e) { + var overOpt, outOpt, hoveredTarget = this._hoveredTarget; + if (hoveredTarget !== target) { + overOpt = { e: e, target: target, previousTarget: this._hoveredTarget }; + outOpt = { e: e, target: this._hoveredTarget, nextTarget: target }; + this._hoveredTarget = target; + } if (target) { - if (this._hoveredTarget !== target) { - if (this._hoveredTarget) { - this.fire('mouse:out', { target: this._hoveredTarget, e: e }); - this._hoveredTarget.fire('mouseout', { e: e }); + if (hoveredTarget !== target) { + if (hoveredTarget) { + this.fire('mouse:out', outOpt); + hoveredTarget.fire('mouseout', outOpt); } - this.fire('mouse:over', { target: target, e: e }); - target.fire('mouseover', { e: e }); - this._hoveredTarget = target; + this.fire('mouse:over', overOpt); + target.fire('mouseover', overOpt); } } - else if (this._hoveredTarget) { - this.fire('mouse:out', { target: this._hoveredTarget, e: e }); - this._hoveredTarget.fire('mouseout', { e: e }); - this._hoveredTarget = null; + else if (hoveredTarget) { + this.fire('mouse:out', outOpt); + hoveredTarget.fire('mouseout', outOpt); } },