diff --git a/src/mixins/itext_behavior.mixin.js b/src/mixins/itext_behavior.mixin.js index 96e07ce6839..0cb12760c76 100644 --- a/src/mixins/itext_behavior.mixin.js +++ b/src/mixins/itext_behavior.mixin.js @@ -355,7 +355,7 @@ this._tick(); this.fire('editing:entered'); - + this._fireSelectionChanged(); if (!this.canvas) { return this; } diff --git a/src/mixins/itext_click_behavior.mixin.js b/src/mixins/itext_click_behavior.mixin.js index 54b8ec66159..eb539207746 100644 --- a/src/mixins/itext_click_behavior.mixin.js +++ b/src/mixins/itext_click_behavior.mixin.js @@ -153,8 +153,10 @@ fabric.util.object.extend(fabric.IText.prototype, /** @lends fabric.IText.protot this.selectionStart = newSelection; this.selectionEnd = newSelection; } - this._fireSelectionChanged(); - this._updateTextarea(); + if (this.isEditing) { + this._fireSelectionChanged(); + this._updateTextarea(); + } }, /** diff --git a/test/unit/itext_key_behaviour.js b/test/unit/itext_key_behaviour.js index 72eb4f8b659..1e0db8ffbd3 100644 --- a/test/unit/itext_key_behaviour.js +++ b/test/unit/itext_key_behaviour.js @@ -13,7 +13,8 @@ iText.on('selection:changed', countSelectionChange); iText.enterEditing(); - equal(selection, 0, 'should not fire on enter edit'); + equal(selection, 1, 'will fire on enter edit since the cursor is changing for the first time'); + selection = 0; iText.selectAll(); equal(selection, 1, 'should fire once on selectAll'); @@ -144,7 +145,8 @@ iText.on('selection:changed', countSelectionChange); iText.enterEditing(); - equal(selection, 0, 'should not fire on enter edit'); + equal(selection, 1, 'should fire on enter edit'); + selection = 0; iText.selectAll(); equal(selection, 1, 'should fire once on selectAll');