diff options
| author | Laurent Redor | 2014-06-16 15:37:16 +0000 |
|---|---|---|
| committer | Laurent Redor | 2014-06-30 13:01:26 +0000 |
| commit | e63e2b942d5eab067b3f2f657efe9c234fcb50f0 (patch) | |
| tree | c3a586c36c071f8795816b21d2cce08076b70bf7 | |
| parent | bd979bb8b82c7e331308e3a1c736a2bb50b313a0 (diff) | |
| download | org.eclipse.sirius-e63e2b942d5eab067b3f2f657efe9c234fcb50f0.tar.gz org.eclipse.sirius-e63e2b942d5eab067b3f2f657efe9c234fcb50f0.tar.xz org.eclipse.sirius-e63e2b942d5eab067b3f2f657efe9c234fcb50f0.zip | |
[437544] Ignore scroll for border node creation
The border of the parent is always visible...
Bug: 437544
Change-Id: I2b26429c19c7d342297269a4e20f433a7a26a3a1
Signed-off-by: Laurent Redor <laurent.redor@obeo.fr>
| -rw-r--r-- | plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/graphical/edit/policies/NodeCreationEditPolicy.java | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/graphical/edit/policies/NodeCreationEditPolicy.java b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/graphical/edit/policies/NodeCreationEditPolicy.java index c1d7122a6f..3b625f5c64 100644 --- a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/graphical/edit/policies/NodeCreationEditPolicy.java +++ b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/graphical/edit/policies/NodeCreationEditPolicy.java @@ -149,8 +149,16 @@ public class NodeCreationEditPolicy extends SiriusContainerEditPolicy { final Point containerLocation = fig.getBounds().getLocation(); location = new Point(location.x - containerLocation.x, location.y - containerLocation.y); if (fig instanceof ResizableCompartmentFigure) { - final Point scrollOffset = ((ResizableCompartmentFigure) fig).getScrollPane().getViewport().getViewLocation(); - final Point shiftFromMarginOffset = FigureUtilities.getShiftFromMarginOffset((ResizableCompartmentFigure) fig, new RequestQuery(request).isDropOrCreationOfBorderedNode(), getHost()); + boolean isBorderNodeCreationRequest = new RequestQuery(request).isDropOrCreationOfBorderedNode(); + Point scrollOffset; + if (isBorderNodeCreationRequest) { + // Ignore scroll for border node, the border of the parent + // is always visible... + scrollOffset = new Point(0, 0); + } else { + scrollOffset = ((ResizableCompartmentFigure) fig).getScrollPane().getViewport().getViewLocation(); + } + final Point shiftFromMarginOffset = FigureUtilities.getShiftFromMarginOffset((ResizableCompartmentFigure) fig, isBorderNodeCreationRequest, getHost()); realLocation = new Point(location.x + scrollOffset.x - shiftFromMarginOffset.x, location.y + scrollOffset.y - shiftFromMarginOffset.y); } else { |
