diff --git a/diylc/diylc-core/src/org/diylc/presenter/Presenter.java b/diylc/diylc-core/src/org/diylc/presenter/Presenter.java
index 34bc1152..1ba3bc6c 100644
--- a/diylc/diylc-core/src/org/diylc/presenter/Presenter.java
+++ b/diylc/diylc-core/src/org/diylc/presenter/Presenter.java
@@ -894,6 +894,8 @@ public class Presenter implements IPlugInPort {
if (instantiationManager.getComponentTypeSlot() != null) {
if (isSnapToGrid()) {
CalcUtils.snapPointToGrid(previousScaledPoint, currentProject.getGridSpacing());
+ } else if (isSnapToObjects()) {
+ CalcUtils.snapPointToObjects(previousScaledPoint, currentProject.getGridSpacing(), null, currentProject.getComponents());
}
boolean refresh = false;
switch (instantiationManager.getComponentTypeSlot().getCreationMethod()) {
diff --git a/diylc/diylc-core/src/org/diylc/presenter/update.xml b/diylc/diylc-core/src/org/diylc/presenter/update.xml
index d1ea68e2..e9bd4a01 100644
--- a/diylc/diylc-core/src/org/diylc/presenter/update.xml
+++ b/diylc/diylc-core/src/org/diylc/presenter/update.xml
@@ -4053,5 +4053,21 @@
https://github.com/bancika/diy-layout-creator/releases
+
+
+ 4
+ 31
+ 0
+
+ 2022-10-23 00:00:00.000 CET
+
+
+
+ IMPROVEMENT
+ "Snap to Components" features now works when creating new components as well as when moving existing ones
+
+
+ https://github.com/bancika/diy-layout-creator/releases
+
diff --git a/diylc/diylc-swing/src/org/diylc/swing/plugins/canvas/CanvasPlugin.java b/diylc/diylc-swing/src/org/diylc/swing/plugins/canvas/CanvasPlugin.java
index c46d2185..d808998f 100644
--- a/diylc/diylc-swing/src/org/diylc/swing/plugins/canvas/CanvasPlugin.java
+++ b/diylc/diylc-swing/src/org/diylc/swing/plugins/canvas/CanvasPlugin.java
@@ -62,6 +62,7 @@ import org.diylc.core.IDIYComponent;
import org.diylc.core.Template;
import org.diylc.core.measures.Size;
import org.diylc.core.measures.SizeUnit;
+import org.diylc.presenter.Presenter;
import org.diylc.swing.ActionFactory;
import org.diylc.swing.ISwingUI;
import org.diylc.swing.gui.TranslatedMenu;
@@ -423,7 +424,7 @@ public class CanvasPlugin implements IPlugIn, ClipboardOwner {
@Override
public void unitsChanged(boolean isMetric) {
- plugInPort.setMetric(isMetric);
+ configManager.writeValue(Presenter.METRIC_KEY, isMetric);
}
});