Skip to content

Commit 1b26178

Browse files
committed
correcting position based on pan and zoom
1 parent 10ed294 commit 1b26178

File tree

5 files changed

+17
-14
lines changed

5 files changed

+17
-14
lines changed

src/main/java/com/marginallyclever/donatello/actions/undoable/AddNodeAction.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public AddNodeAction(String name, Donatello editor) {
3636
public void actionPerformed(ActionEvent e) {
3737
Node n = AddNodePanel.runAsDialog((JFrame)SwingUtilities.getWindowAncestor(editor));
3838
if(n!=null) {
39-
n.setPosition(editor.getPopupPoint());
39+
n.setPosition(editor.getPaintArea().transformMousePoint(editor.getPopupPoint()));
4040
editor.addEdit(new AddNodeEdit((String)this.getValue(Action.NAME),editor,n));
4141
}
4242
}

src/main/java/com/marginallyclever/donatello/edits/PasteGraphEdit.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public PasteGraphEdit(String name, Donatello editor, NodeGraph graph) {
1818
this.name = name;
1919
this.editor = editor;
2020
this.copiedGraph = graph.deepCopy();
21-
this.m = editor.getMousePosition();
21+
this.m = editor.getPaintArea().transformMousePoint(editor.getMousePosition());
2222
doIt();
2323
}
2424

src/main/java/com/marginallyclever/donatello/modaltools/ConnectionEditTool.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ public void mouseClicked(MouseEvent e) {
7373
public void mouseMoved(MouseEvent e) {
7474
repaintConnectionInProgress(e.getPoint());
7575

76-
mousePreviousPosition.setLocation(e.getX(), e.getY());
76+
mousePreviousPosition.setLocation(editor.getPaintArea().transformMousePoint(e.getPoint()));
7777
selectOneNearbyConnectionPoint(e.getPoint());
7878
}
7979

@@ -82,7 +82,8 @@ public void mouseMoved(MouseEvent e) {
8282
* @param p the center of the search area.
8383
*/
8484
private void selectOneNearbyConnectionPoint(Point p) {
85-
NodeConnectionPointInfo info = editor.getGraph().getFirstNearbyConnection(p,NEARBY_CONNECTION_DISTANCE_MAX);
85+
Point p2 = editor.getPaintArea().transformMousePoint(p);
86+
NodeConnectionPointInfo info = editor.getGraph().getFirstNearbyConnection(p2,NEARBY_CONNECTION_DISTANCE_MAX);
8687
setLastConnectionPoint(info);
8788
}
8889

src/main/java/com/marginallyclever/donatello/modaltools/NodeMoveTool.java

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -67,34 +67,36 @@ public void detachMouseAdapter() {
6767
@Override
6868
public void mouseDragged(MouseEvent e) {
6969
if(dragOn) {
70-
int dx = e.getX() - mousePreviousPosition.x;
71-
int dy = e.getY() - mousePreviousPosition.y;
70+
Point p = editor.getPaintArea().transformMousePoint(e.getPoint());
71+
int dx = p.x - mousePreviousPosition.x;
72+
int dy = p.y - mousePreviousPosition.y;
7273
editor.moveSelectedNodes(dx, dy);
7374
editor.repaint();
7475
}
75-
mousePreviousPosition.setLocation(e.getX(), e.getY());
76+
mousePreviousPosition.setLocation(editor.getPaintArea().transformMousePoint(e.getPoint()));
7677
}
7778

7879
@Override
7980
public void mouseMoved(MouseEvent e) {
80-
mousePreviousPosition.setLocation(e.getX(), e.getY());
81+
mousePreviousPosition.setLocation(editor.getPaintArea().transformMousePoint(e.getPoint()));
8182
}
8283

8384
@Override
8485
public void mousePressed(MouseEvent e) {
8586
if(!dragOn) {
8687
dragOn=true;
87-
mouseStartPosition.setLocation(e.getX(),e.getY());
88-
mousePreviousPosition.setLocation(e.getX(), e.getY());
88+
mousePreviousPosition.setLocation(editor.getPaintArea().transformMousePoint(e.getPoint()));
89+
mouseStartPosition.setLocation(mousePreviousPosition);
8990
}
9091
}
9192

9293
@Override
9394
public void mouseReleased(MouseEvent e) {
9495
if(dragOn) {
9596
dragOn=false;
96-
int dx = e.getX() - mouseStartPosition.x;
97-
int dy = e.getY() - mouseStartPosition.y;
97+
Point p = editor.getPaintArea().transformMousePoint(e.getPoint());
98+
int dx = p.x - mouseStartPosition.x;
99+
int dy = p.y - mouseStartPosition.y;
98100
editor.addEdit(new MoveNodesEdit(getName(),editor,dx,dy));
99101
}
100102
}

src/main/java/com/marginallyclever/donatello/modaltools/RectangleSelectTool.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ private void paintSelectionArea(Graphics g) {
107107
2, new float[]{3}, 0);
108108
g2d.setStroke(dashed);
109109

110-
g2d.setColor(keyStateMemory.isShiftKeyDown() ? Color.YELLOW : Color.MAGENTA);
110+
g2d.setColor(keyStateMemory.isShiftKeyDown() ? Color.YELLOW : Color.GREEN);
111111
Rectangle2D r = getSelectionArea(mousePreviousPosition);
112112
g2d.drawRect((int)r.getMinX(),(int)r.getMinY(),(int)r.getWidth()-STROKE_WIDTH,(int)r.getHeight()-STROKE_WIDTH);
113113
}
@@ -141,7 +141,7 @@ public void mousePressed(MouseEvent e) {
141141

142142
@Override
143143
public void mouseReleased(MouseEvent e) {
144-
if(selectionOn) endSelectionArea(e.getPoint());
144+
if(selectionOn) endSelectionArea(editor.getPaintArea().transformMousePoint(e.getPoint()));
145145
}
146146

147147
/**

0 commit comments

Comments
 (0)