Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLaurent Redor2014-06-16 15:37:16 +0000
committerLaurent Redor2014-06-30 13:01:26 +0000
commite63e2b942d5eab067b3f2f657efe9c234fcb50f0 (patch)
treec3a586c36c071f8795816b21d2cce08076b70bf7
parentbd979bb8b82c7e331308e3a1c736a2bb50b313a0 (diff)
downloadorg.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.java12
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 {

Back to the top