diff --git a/src/canvas.class.js b/src/canvas.class.js index 9302007e..e40d4f87 100644 --- a/src/canvas.class.js +++ b/src/canvas.class.js @@ -275,22 +275,24 @@ */ _normalizePointer: function (object, pointer) { var activeGroup = this.getActiveGroup(), - x = pointer.x, - y = pointer.y, isObjectInGroup = ( activeGroup && object.type !== 'group' && activeGroup.contains(object)), - lt; + lt, m; if (isObjectInGroup) { - lt = fabric.util.transformPoint(activeGroup.getCenterPoint(), this.viewportTransform, true); - x -= lt.x; - y -= lt.y; - x /= activeGroup.scaleX; - y /= activeGroup.scaleY; + m = fabric.util.multiplyTransformMatrices( + this.viewportTransform, + activeGroup.calcTransformMatrix()); + + m = fabric.util.invertTransform(m); + pointer = fabric.util.transformPoint(pointer, m , false); + lt = fabric.util.transformPoint(activeGroup.getCenterPoint(), m , false); + pointer.x -= lt.x; + pointer.y -= lt.y; } - return { x: x, y: y }; + return { x: pointer.x, y: pointer.y }; }, /**