diff --git a/src/mixins/itext_behavior.mixin.js b/src/mixins/itext_behavior.mixin.js index 4d684735..9307fa0c 100644 --- a/src/mixins/itext_behavior.mixin.js +++ b/src/mixins/itext_behavior.mixin.js @@ -341,10 +341,28 @@ this._setEditingProps(); this._tick(); - this.canvas && this.canvas.renderAll(); - this.fire('editing:entered'); - this.canvas && this.canvas.fire('text:editing:entered', { target: this }); + if (this.canvas) { + var _this = this; + this.canvas.renderAll(); + this.canvas.fire('text:editing:entered', { target: this }); + this.canvas.on('mouse:move', function(options) { + + if (!_this.__isMousedown || !_this.isEditing) { + return; + } + + var newSelectionStart = _this.getSelectionStartFromPointer(options.e); + if (newSelectionStart >= _this.__selectionStartOnMouseDown) { + _this.setSelectionStart(_this.__selectionStartOnMouseDown); + _this.setSelectionEnd(newSelectionStart); + } + else { + _this.setSelectionStart(newSelectionStart); + _this.setSelectionEnd(_this.__selectionStartOnMouseDown); + } + }); + } return this; }, diff --git a/src/mixins/itext_click_behavior.mixin.js b/src/mixins/itext_click_behavior.mixin.js index ad76a14d..3aa08ce5 100644 --- a/src/mixins/itext_click_behavior.mixin.js +++ b/src/mixins/itext_click_behavior.mixin.js @@ -63,7 +63,6 @@ fabric.util.object.extend(fabric.IText.prototype, /** @lends fabric.IText.protot initCursorSelectionHandlers: function() { this.initSelectedHandler(); this.initMousedownHandler(); - this.initMousemoveHandler(); this.initMouseupHandler(); this.initClicks(); }, @@ -107,28 +106,6 @@ fabric.util.object.extend(fabric.IText.prototype, /** @lends fabric.IText.protot }); }, - /** - * Initializes "mousemove" event handler - */ - initMousemoveHandler: function() { - this.on('mousemove', function(options) { - if (!this.__isMousedown || !this.isEditing) { - return; - } - - var newSelectionStart = this.getSelectionStartFromPointer(options.e); - - if (newSelectionStart >= this.__selectionStartOnMouseDown) { - this.setSelectionStart(this.__selectionStartOnMouseDown); - this.setSelectionEnd(newSelectionStart); - } - else { - this.setSelectionStart(newSelectionStart); - this.setSelectionEnd(this.__selectionStartOnMouseDown); - } - }); - }, - /** * @private */