[BACK_INCOMPAT] Object rotation now happens around originX/originY point UNLESS centerTransform=true. Version 1.2.12. Closes #439

This commit is contained in:
kangax 2013-09-09 16:39:39 +02:00
parent bec5787267
commit 95c97f5447
9 changed files with 109 additions and 46 deletions

View file

@ -1,7 +1,7 @@
/*! Fabric.js Copyright 2008-2013, Printio (Juriy Zaytsev, Maxim Chernyak) */
var exports = exports || {};
var fabric = fabric || { version: "1.2.11" };
var fabric = fabric || { version: "1.2.12" };
// make sure exports.fabric is always defined when used as 'global' later scopes
exports.fabric = fabric;

View file

@ -2,7 +2,7 @@
"name": "fabric.js",
"repo": "kangax/fabric.js",
"description": "Object model for HTML5 canvas, and SVG-to-canvas parser. Backed by jsdom and node-canvas.",
"version": "1.2.11",
"version": "1.2.12",
"keywords": ["canvas", "graphic", "graphics", "SVG", "node-canvas", "parser", "HTML5", "object model"],
"dependencies": {},
"development": {},

47
dist/all.js vendored
View file

@ -2,7 +2,7 @@
/*! Fabric.js Copyright 2008-2013, Printio (Juriy Zaytsev, Maxim Chernyak) */
var exports = exports || {};
var fabric = fabric || { version: "1.2.11" };
var fabric = fabric || { version: "1.2.12" };
// make sure exports.fabric is always defined when used as 'global' later scopes
exports.fabric = fabric;
@ -8684,7 +8684,7 @@ fabric.PatternBrush = fabric.util.createClass(fabric.PencilBrush, /** @lends fab
: 'scale';
}
var originX = "center", originY = "center";
var originX = target.originX, originY = target.originY;
if (corner === 'ml' || corner === 'tl' || corner === 'bl') {
originX = "right";
@ -8700,10 +8700,10 @@ fabric.PatternBrush = fabric.util.createClass(fabric.PencilBrush, /** @lends fab
originY = "top";
}
if (corner === 'mtr') {
originX = 'center';
originY = 'center';
}
// if (corner === 'mtr') {
// originX = 'center';
// originY = 'center';
// }
// var center = target.getCenterPoint();
this._currentTransform = {
@ -9551,9 +9551,21 @@ fabric.PatternBrush = fabric.util.createClass(fabric.PencilBrush, /** @lends fab
target.fire('modified');
}
if (this._previousOriginX) {
this._currentTransform.target.adjustPosition(this._previousOriginX);
if (this._previousOriginX && this._previousOriginY) {
var originPoint = target.translateToOriginPoint(
target.getCenterPoint(),
this._previousOriginX,
this._previousOriginY);
target.originX = this._previousOriginX;
target.originY = this._previousOriginY;
target.left = originPoint.x;
target.top = originPoint.y;
this._previousOriginX = null;
this._previousOriginY = null;
}
}
@ -9654,12 +9666,21 @@ fabric.PatternBrush = fabric.util.createClass(fabric.PencilBrush, /** @lends fab
this.fire('mouse:down', { target: target, e: e });
target && target.fire('mousedown', { e: e });
// center origin when rotating
if (corner === 'mtr') {
if (corner === 'mtr' && target.centerTransform) {
this._previousOriginX = this._currentTransform.target.originX;
this._currentTransform.target.adjustPosition('center');
this._currentTransform.left = this._currentTransform.target.left;
this._currentTransform.top = this._currentTransform.target.top;
this._previousOriginY = this._currentTransform.target.originY;
var center = target.getCenterPoint();
target.originX = 'center';
target.originY = 'center';
target.left = center.x;
target.top = center.y;
this._currentTransform.left = target.left;
this._currentTransform.top = target.top;
}
},

10
dist/all.min.js vendored

File diff suppressed because one or more lines are too long

BIN
dist/all.min.js.gz vendored

Binary file not shown.

47
dist/all.require.js vendored
View file

@ -2,7 +2,7 @@
/*! Fabric.js Copyright 2008-2013, Printio (Juriy Zaytsev, Maxim Chernyak) */
var exports = exports || {};
var fabric = fabric || { version: "1.2.11" };
var fabric = fabric || { version: "1.2.12" };
// make sure exports.fabric is always defined when used as 'global' later scopes
exports.fabric = fabric;
@ -8684,7 +8684,7 @@ fabric.PatternBrush = fabric.util.createClass(fabric.PencilBrush, /** @lends fab
: 'scale';
}
var originX = "center", originY = "center";
var originX = target.originX, originY = target.originY;
if (corner === 'ml' || corner === 'tl' || corner === 'bl') {
originX = "right";
@ -8700,10 +8700,10 @@ fabric.PatternBrush = fabric.util.createClass(fabric.PencilBrush, /** @lends fab
originY = "top";
}
if (corner === 'mtr') {
originX = 'center';
originY = 'center';
}
// if (corner === 'mtr') {
// originX = 'center';
// originY = 'center';
// }
// var center = target.getCenterPoint();
this._currentTransform = {
@ -9551,9 +9551,21 @@ fabric.PatternBrush = fabric.util.createClass(fabric.PencilBrush, /** @lends fab
target.fire('modified');
}
if (this._previousOriginX) {
this._currentTransform.target.adjustPosition(this._previousOriginX);
if (this._previousOriginX && this._previousOriginY) {
var originPoint = target.translateToOriginPoint(
target.getCenterPoint(),
this._previousOriginX,
this._previousOriginY);
target.originX = this._previousOriginX;
target.originY = this._previousOriginY;
target.left = originPoint.x;
target.top = originPoint.y;
this._previousOriginX = null;
this._previousOriginY = null;
}
}
@ -9654,12 +9666,21 @@ fabric.PatternBrush = fabric.util.createClass(fabric.PencilBrush, /** @lends fab
this.fire('mouse:down', { target: target, e: e });
target && target.fire('mousedown', { e: e });
// center origin when rotating
if (corner === 'mtr') {
if (corner === 'mtr' && target.centerTransform) {
this._previousOriginX = this._currentTransform.target.originX;
this._currentTransform.target.adjustPosition('center');
this._currentTransform.left = this._currentTransform.target.left;
this._currentTransform.top = this._currentTransform.target.top;
this._previousOriginY = this._currentTransform.target.originY;
var center = target.getCenterPoint();
target.originX = 'center';
target.originY = 'center';
target.left = center.x;
target.top = center.y;
this._currentTransform.left = target.left;
this._currentTransform.top = target.top;
}
},

View file

@ -1,7 +1,7 @@
{
"name": "fabric",
"description": "Object model for HTML5 canvas, and SVG-to-canvas parser. Backed by jsdom and node-canvas.",
"version": "1.2.11",
"version": "1.2.12",
"author": "Juriy Zaytsev <kangax@gmail.com>",
"keywords": ["canvas", "graphic", "graphics", "SVG", "node-canvas", "parser", "HTML5", "object model"],
"repository": "git://github.com/kangax/fabric.js",

View file

@ -339,7 +339,7 @@
: 'scale';
}
var originX = "center", originY = "center";
var originX = target.originX, originY = target.originY;
if (corner === 'ml' || corner === 'tl' || corner === 'bl') {
originX = "right";
@ -355,10 +355,10 @@
originY = "top";
}
if (corner === 'mtr') {
originX = 'center';
originY = 'center';
}
// if (corner === 'mtr') {
// originX = 'center';
// originY = 'center';
// }
// var center = target.getCenterPoint();
this._currentTransform = {

View file

@ -147,9 +147,21 @@
target.fire('modified');
}
if (this._previousOriginX) {
this._currentTransform.target.adjustPosition(this._previousOriginX);
if (this._previousOriginX && this._previousOriginY) {
var originPoint = target.translateToOriginPoint(
target.getCenterPoint(),
this._previousOriginX,
this._previousOriginY);
target.originX = this._previousOriginX;
target.originY = this._previousOriginY;
target.left = originPoint.x;
target.top = originPoint.y;
this._previousOriginX = null;
this._previousOriginY = null;
}
}
@ -250,12 +262,21 @@
this.fire('mouse:down', { target: target, e: e });
target && target.fire('mousedown', { e: e });
// center origin when rotating
if (corner === 'mtr') {
if (corner === 'mtr' && target.centerTransform) {
this._previousOriginX = this._currentTransform.target.originX;
this._currentTransform.target.adjustPosition('center');
this._currentTransform.left = this._currentTransform.target.left;
this._currentTransform.top = this._currentTransform.target.top;
this._previousOriginY = this._currentTransform.target.originY;
var center = target.getCenterPoint();
target.originX = 'center';
target.originY = 'center';
target.left = center.x;
target.top = center.y;
this._currentTransform.left = target.left;
this._currentTransform.top = target.top;
}
},