diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/library/main.jar b/ diy-layout-creator --username bancika@gmail.com/diylc-core/library/main.jar index 9c31d586..7eafb229 100644 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/library/main.jar and b/ diy-layout-creator --username bancika@gmail.com/diylc-core/library/main.jar differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/presenter/InstantiationManager.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/presenter/InstantiationManager.java index d352dffa..8017339e 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/presenter/InstantiationManager.java +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/presenter/InstantiationManager.java @@ -140,8 +140,8 @@ public class InstantiationManager { } } } - int x = (minX + maxX) / 2; - int y = (minY + maxY) / 2; + int x = minX; + int y = minY; if (snapToGrid) { x = CalcUtils.roundToGrid(x, gridSpacing); x = CalcUtils.roundToGrid(x, gridSpacing); diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/presenter/Presenter.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/presenter/Presenter.java index 6f6834d2..195a10d0 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/presenter/Presenter.java +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/presenter/Presenter.java @@ -687,7 +687,7 @@ public class Presenter implements IPlugInPort { } Project oldProject = currentProject.clone(); - moveSelectedComponents(controlPointMap, dx, dy, snapToGrid); + moveComponents(controlPointMap, dx, dy, snapToGrid); messageDispatcher.dispatchMessage(EventType.PROJECT_MODIFIED, oldProject, currentProject.clone(), "Move Selection"); messageDispatcher.dispatchMessage(EventType.REPAINT); @@ -1007,7 +1007,7 @@ public class Presenter implements IPlugInPort { int dx = (scaledPoint.x - previousDragPoint.x); int dy = (scaledPoint.y - previousDragPoint.y); - Point actualD = moveSelectedComponents(this.controlPointMap, dx, + Point actualD = moveComponents(this.controlPointMap, dx, dy, isSnapToGrid()); if (actualD == null) return true; @@ -1031,7 +1031,7 @@ public class Presenter implements IPlugInPort { return true; } - private Point moveSelectedComponents( + private Point moveComponents( Map, Set> controlPointMap, int dx, int dy, boolean snapToGrid) { // After we make the transfer and snap to grid, calculate actual dx @@ -1058,11 +1058,14 @@ public class Presenter implements IPlugInPort { actualDx = testPoint.x - firstPoint.x; actualDy = testPoint.y - firstPoint.y; - } else { + } else if (snapToGrid) { actualDx = CalcUtils.roundToGrid(dx, currentProject .getGridSpacing()); actualDy = CalcUtils.roundToGrid(dy, currentProject .getGridSpacing()); + } else { + actualDx = dx; + actualDy = dy; } if (actualDx == 0 && actualDy == 0) {