From 315a8ea259a0f9f6fca6920332eb6d11cacf4f16 Mon Sep 17 00:00:00 2001 From: bancika Date: Mon, 3 Jan 2011 17:17:11 +0000 Subject: [PATCH] fixed undo with d&d --- .../diyfever/diylc/presenter/Presenter.java | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/com/diyfever/diylc/presenter/Presenter.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/com/diyfever/diylc/presenter/Presenter.java index c73410d4..239a0473 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/com/diyfever/diylc/presenter/Presenter.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/com/diyfever/diylc/presenter/Presenter.java @@ -88,6 +88,7 @@ public class Presenter implements IPlugInPort { // D&D private boolean dragInProgress = false; private Point dragStartPoint = null; + private Project preDragProject = null; private IComponentType componentSlot; @@ -431,6 +432,7 @@ public class Presenter implements IPlugInPort { LOG.debug(String.format("dragStarted(%s)", point)); dragInProgress = true; dragStartPoint = point; + preDragProject = cloner.deepClone(currentProject); Point scaledPoint = scalePoint(point); List components = findComponentsAt(scaledPoint); if (!componentsUnderCursor.isEmpty()) { @@ -511,17 +513,15 @@ public class Presenter implements IPlugInPort { } selectionRect = null; messageDispatcher.dispatchMessage(EventType.SELECTION_CHANGED, selectedComponents); - } else { - // There is selection, so we need to finalize the drag&drop - // operation. - Project oldProject = cloner.deepClone(currentProject); + } + // There is selection, so we need to finalize the drag&drop + // operation. - // If there are components selected translate their control points. - translateSelectedComponents(dragStartPoint, point); - if (!oldProject.equals(currentProject)) { - messageDispatcher.dispatchMessage(EventType.PROJECT_MODIFIED, oldProject, cloner - .deepClone(currentProject), "Move"); - } + // If there are components selected translate their control points. + // translateSelectedComponents(dragStartPoint, point); + if (!preDragProject.equals(currentProject)) { + messageDispatcher.dispatchMessage(EventType.PROJECT_MODIFIED, preDragProject, cloner + .deepClone(currentProject), "Move"); } messageDispatcher.dispatchMessage(EventType.REPAINT); dragInProgress = false;