fixed group restoring internal absolute coords for subtarget check (#4454)

* fixed group restoring internal cords

* added small test
This commit is contained in:
Andrea Bogazzi 2017-11-12 15:54:33 +01:00 committed by GitHub
parent d65b5dd5a1
commit 51a9e87854
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 29 additions and 0 deletions

View file

@ -93,10 +93,24 @@
delete options.centerPoint;
this.callSuper('initialize', options);
}
else {
this._updateObjectsACoords();
}
this.setCoords();
},
/**
* @private
* @param {Boolean} [skipCoordsChange] if true, coordinates of objects enclosed in a group do not change
*/
_updateObjectsACoords: function() {
var ignoreZoom = true, skipAbsolute = true;
for (var i = this._objects.length; i--; ){
this._objects[i].setCoords(ignoreZoom, skipAbsolute);
}
},
/**
* @private
* @param {Boolean} [skipCoordsChange] if true, coordinates of objects enclosed in a group do not change

View file

@ -392,6 +392,21 @@
});
});
QUnit.test('fromObject restores oCoords', function(assert) {
var done = assert.async();
var group = makeGroupWith2ObjectsWithOpacity();
var groupObject = group.toObject();
fabric.Group.fromObject(groupObject, function(newGroupFromObject) {
console.log(newGroupFromObject._objects[0]);
assert.ok(newGroupFromObject._objects[0].oCoords.tl, 'acoords 0 are restored');
assert.ok(newGroupFromObject._objects[1].oCoords.tl, 'acoords 1 are restored');
done();
});
});
QUnit.test('fromObject does not delete objects from source', function(assert) {
var done = assert.async();
var group = makeGroupWith2ObjectsWithOpacity();