From d4b51aec6c4bd9195d4944a6d8d43d676871b66c Mon Sep 17 00:00:00 2001 From: Andrea Bogazzi Date: Thu, 28 Sep 2017 23:53:07 -0400 Subject: [PATCH] added old props to selection:updated and selection:created (#4357) * added old props * added a test --- .eslintrc.json | 2 +- src/canvas.class.js | 7 ++++++- test/unit/canvas.js | 22 ++++++++++++++++++++++ 3 files changed, 29 insertions(+), 2 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index 3d8c2d12..4bbe6219 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -55,7 +55,7 @@ ], "max-statements": [ 2, - 45 + 150 ], "curly": [ 2, diff --git a/src/canvas.class.js b/src/canvas.class.js index 467d668b..59e01665 100644 --- a/src/canvas.class.js +++ b/src/canvas.class.js @@ -1422,15 +1422,20 @@ if (oldObjects.length > 0 && objects.length > 0) { opt.selected = added; opt.deselected = removed; + // added for backward compatibility + opt.updated = added[0] || removed[0]; + opt.target = this._activeObject; somethingChanged && this.fire('selection:updated', opt); } else if (objects.length > 0) { + // deprecated event if (objects.length === 1) { opt.target = added[0]; this.fire('object:selected', opt); } - opt.target = undefined; opt.selected = added; + // added for backward compatibility + opt.target = this._activeObject; this.fire('selection:created', opt); } else if (oldObjects.length > 0) { diff --git a/test/unit/canvas.js b/test/unit/canvas.js index 0ed47ed8..cc1e6578 100644 --- a/test/unit/canvas.js +++ b/test/unit/canvas.js @@ -534,6 +534,28 @@ assert.equal(collected[2], rect1, 'rect1 is collected'); }); + QUnit.test('_fireSelectionEvents fires multiple things', function(assert) { + var rect1Deselected = false; + var rect3Selected = false; + var rect1 = new fabric.Rect(); + var rect2 = new fabric.Rect(); + var rect3 = new fabric.Rect(); + var activeSelection = new fabric.ActiveSelection([rect1, rect2]); + canvas.setActiveObject(activeSelection); + rect1.on('deselected', function( ) { + rect1Deselected = true; + }); + rect3.on('selected', function( ) { + rect3Selected = true; + }); + var currentObjects = canvas.getActiveObjects(); + activeSelection.removeWithUpdate(rect1); + activeSelection.addWithUpdate(rect3); + canvas._fireSelectionEvents(currentObjects, {}); + assert.ok(rect3Selected, 'rect 3 selected'); + assert.ok(rect1Deselected, 'rect 1 deselected'); + }); + QUnit.test('getContext', function(assert) { assert.ok(typeof canvas.getContext === 'function'); });