From 7176ebd72aedea6f43d19603bfdc726aee3157d2 Mon Sep 17 00:00:00 2001 From: melchiar <9057412+melchiar@users.noreply.github.com> Date: Sat, 23 Mar 2019 22:12:17 -0700 Subject: [PATCH 1/4] added disableStyleCopying property to text class --- src/mixins/itext_key_behavior.mixin.js | 4 +++- src/shapes/text.class.js | 9 +++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/mixins/itext_key_behavior.mixin.js b/src/mixins/itext_key_behavior.mixin.js index 04c71bd7789..6848c8873d3 100644 --- a/src/mixins/itext_key_behavior.mixin.js +++ b/src/mixins/itext_key_behavior.mixin.js @@ -239,7 +239,9 @@ fabric.util.object.extend(fabric.IText.prototype, /** @lends fabric.IText.protot } fabric.copiedText = this.getSelectedText(); - fabric.copiedTextStyle = this.getSelectionStyles(this.selectionStart, this.selectionEnd, true); + if(!this.disableStyleCopying) { + fabric.copiedTextStyle = this.getSelectionStyles(this.selectionStart, this.selectionEnd, true); + } this._copyDone = true; }, diff --git a/src/shapes/text.class.js b/src/shapes/text.class.js index 1ba9869e225..a52e91a55f8 100644 --- a/src/shapes/text.class.js +++ b/src/shapes/text.class.js @@ -215,6 +215,15 @@ */ shadow: null, + /** + * When 'true', style information is not retained when copying text to the clipboard, + * making pasted text use destination style. + * Defaults to 'false'. + * @type Boolean + * @default + */ + disableStyleCopying: false, + /** * @private */ From 7cae76a75cd294d3e81501f5201d241d98247a14 Mon Sep 17 00:00:00 2001 From: melchiar <9057412+melchiar@users.noreply.github.com> Date: Sat, 23 Mar 2019 23:03:31 -0700 Subject: [PATCH 2/4] formatting correction --- src/mixins/itext_key_behavior.mixin.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mixins/itext_key_behavior.mixin.js b/src/mixins/itext_key_behavior.mixin.js index 6848c8873d3..42d8ed74be9 100644 --- a/src/mixins/itext_key_behavior.mixin.js +++ b/src/mixins/itext_key_behavior.mixin.js @@ -239,7 +239,7 @@ fabric.util.object.extend(fabric.IText.prototype, /** @lends fabric.IText.protot } fabric.copiedText = this.getSelectedText(); - if(!this.disableStyleCopying) { + if (!this.disableStyleCopying) { fabric.copiedTextStyle = this.getSelectionStyles(this.selectionStart, this.selectionEnd, true); } this._copyDone = true; From 6d4ec6a210fe6de8aa054219905c43f7aa47b4e0 Mon Sep 17 00:00:00 2001 From: melchiar <9057412+melchiar@users.noreply.github.com> Date: Mon, 25 Mar 2019 22:29:09 -0700 Subject: [PATCH 3/4] changed property to fabric namespace --- HEADER.js | 9 +++++++++ src/mixins/itext_key_behavior.mixin.js | 5 ++++- src/shapes/text.class.js | 9 --------- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/HEADER.js b/HEADER.js index 0b580a5eff4..be80d5069a2 100644 --- a/HEADER.js +++ b/HEADER.js @@ -114,6 +114,15 @@ fabric.charWidthsCache = { }; */ fabric.textureSize = 2048; +/** + * When 'true', style information is not retained when copy/pasting text, making + * pasted text use destination style. + * Defaults to 'false'. + * @type Boolean + * @default + */ +fabric.disableStyleCopyPaste = false; + /** * Enable webgl for filtering picture is available * A filtering backend will be initialized, this will both take memory and diff --git a/src/mixins/itext_key_behavior.mixin.js b/src/mixins/itext_key_behavior.mixin.js index 42d8ed74be9..aa38dc4ccd0 100644 --- a/src/mixins/itext_key_behavior.mixin.js +++ b/src/mixins/itext_key_behavior.mixin.js @@ -239,9 +239,12 @@ fabric.util.object.extend(fabric.IText.prototype, /** @lends fabric.IText.protot } fabric.copiedText = this.getSelectedText(); - if (!this.disableStyleCopying) { + if (!fabric.disableStyleCopyPaste) { fabric.copiedTextStyle = this.getSelectionStyles(this.selectionStart, this.selectionEnd, true); } + else { + fabric.copiedTextStyle = null; + } this._copyDone = true; }, diff --git a/src/shapes/text.class.js b/src/shapes/text.class.js index a52e91a55f8..1ba9869e225 100644 --- a/src/shapes/text.class.js +++ b/src/shapes/text.class.js @@ -215,15 +215,6 @@ */ shadow: null, - /** - * When 'true', style information is not retained when copying text to the clipboard, - * making pasted text use destination style. - * Defaults to 'false'. - * @type Boolean - * @default - */ - disableStyleCopying: false, - /** * @private */ From f097cfad079f6b929f70d40efe95161bf5045aa8 Mon Sep 17 00:00:00 2001 From: melchiar <9057412+melchiar@users.noreply.github.com> Date: Mon, 25 Mar 2019 22:44:23 -0700 Subject: [PATCH 4/4] added property check while pasting --- src/mixins/itext_key_behavior.mixin.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mixins/itext_key_behavior.mixin.js b/src/mixins/itext_key_behavior.mixin.js index aa38dc4ccd0..ee80b279487 100644 --- a/src/mixins/itext_key_behavior.mixin.js +++ b/src/mixins/itext_key_behavior.mixin.js @@ -191,7 +191,7 @@ fabric.util.object.extend(fabric.IText.prototype, /** @lends fabric.IText.protot } } if (insertedText.length) { - if (fromPaste && insertedText.join('') === fabric.copiedText) { + if (fromPaste && insertedText.join('') === fabric.copiedText && !fabric.disableStyleCopyPaste) { this.insertNewStyleBlock(insertedText, this.selectionStart, fabric.copiedTextStyle); } else {