added old props to selection:updated and selection:created (#4357)

* added old props

* added a test
This commit is contained in:
Andrea Bogazzi 2017-09-28 23:53:07 -04:00 committed by GitHub
parent d11c55e9cd
commit d4b51aec6c
3 changed files with 29 additions and 2 deletions

View file

@ -55,7 +55,7 @@
],
"max-statements": [
2,
45
150
],
"curly": [
2,

View file

@ -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) {

View file

@ -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');
});