Skip to content

Commit d4b51ae

Browse files
authored
added old props to selection:updated and selection:created (fabricjs#4357)
* added old props * added a test
1 parent d11c55e commit d4b51ae

File tree

3 files changed

+29
-2
lines changed

3 files changed

+29
-2
lines changed

.eslintrc.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@
5555
],
5656
"max-statements": [
5757
2,
58-
45
58+
150
5959
],
6060
"curly": [
6161
2,

src/canvas.class.js

+6-1
Original file line numberDiff line numberDiff line change
@@ -1422,15 +1422,20 @@
14221422
if (oldObjects.length > 0 && objects.length > 0) {
14231423
opt.selected = added;
14241424
opt.deselected = removed;
1425+
// added for backward compatibility
1426+
opt.updated = added[0] || removed[0];
1427+
opt.target = this._activeObject;
14251428
somethingChanged && this.fire('selection:updated', opt);
14261429
}
14271430
else if (objects.length > 0) {
1431+
// deprecated event
14281432
if (objects.length === 1) {
14291433
opt.target = added[0];
14301434
this.fire('object:selected', opt);
14311435
}
1432-
opt.target = undefined;
14331436
opt.selected = added;
1437+
// added for backward compatibility
1438+
opt.target = this._activeObject;
14341439
this.fire('selection:created', opt);
14351440
}
14361441
else if (oldObjects.length > 0) {

test/unit/canvas.js

+22
Original file line numberDiff line numberDiff line change
@@ -534,6 +534,28 @@
534534
assert.equal(collected[2], rect1, 'rect1 is collected');
535535
});
536536

537+
QUnit.test('_fireSelectionEvents fires multiple things', function(assert) {
538+
var rect1Deselected = false;
539+
var rect3Selected = false;
540+
var rect1 = new fabric.Rect();
541+
var rect2 = new fabric.Rect();
542+
var rect3 = new fabric.Rect();
543+
var activeSelection = new fabric.ActiveSelection([rect1, rect2]);
544+
canvas.setActiveObject(activeSelection);
545+
rect1.on('deselected', function( ) {
546+
rect1Deselected = true;
547+
});
548+
rect3.on('selected', function( ) {
549+
rect3Selected = true;
550+
});
551+
var currentObjects = canvas.getActiveObjects();
552+
activeSelection.removeWithUpdate(rect1);
553+
activeSelection.addWithUpdate(rect3);
554+
canvas._fireSelectionEvents(currentObjects, {});
555+
assert.ok(rect3Selected, 'rect 3 selected');
556+
assert.ok(rect1Deselected, 'rect 1 deselected');
557+
});
558+
537559
QUnit.test('getContext', function(assert) {
538560
assert.ok(typeof canvas.getContext === 'function');
539561
});

0 commit comments

Comments
 (0)