This commit is contained in:
hneemann 2019-03-17 18:38:27 +01:00
parent 346b7c4ca6
commit 1b8f5ae933

View File

@ -2181,7 +2181,7 @@ public class CircuitComponent extends JComponent implements Circuit.ChangedListe
private final class MouseControllerRun extends MouseController { private final class MouseControllerRun extends MouseController {
private boolean dragHandled; private VisualElement draggedElement;
private MouseControllerRun(Cursor cursor) { private MouseControllerRun(Cursor cursor) {
super(cursor); super(cursor);
@ -2192,9 +2192,9 @@ public class CircuitComponent extends JComponent implements Circuit.ChangedListe
VisualElement ve = getInteractiveElementAt(e); VisualElement ve = getInteractiveElementAt(e);
if (ve != null) { if (ve != null) {
interact(e, ve::elementPressed); interact(e, ve::elementPressed);
dragHandled = true; draggedElement = ve;
} else } else
dragHandled = false; draggedElement = null;
} }
private VisualElement getInteractiveElementAt(MouseEvent e) { private VisualElement getInteractiveElementAt(MouseEvent e) {
@ -2208,9 +2208,10 @@ public class CircuitComponent extends JComponent implements Circuit.ChangedListe
@Override @Override
void released(MouseEvent e) { void released(MouseEvent e) {
VisualElement ve = getInteractiveElementAt(e); if (draggedElement != null) {
if (ve != null) interact(e, draggedElement::elementReleased);
interact(e, ve::elementReleased); draggedElement = null;
}
} }
@Override @Override
@ -2222,10 +2223,11 @@ public class CircuitComponent extends JComponent implements Circuit.ChangedListe
@Override @Override
boolean dragged(MouseEvent e) { boolean dragged(MouseEvent e) {
VisualElement ve = getInteractiveElementAt(e); if (draggedElement != null) {
if (ve != null) interact(e, draggedElement::elementDragged);
interact(e, ve::elementDragged); return true;
return dragHandled; } else
return false;
} }
private void interact(MouseEvent e, Actor actor) { private void interact(MouseEvent e, Actor actor) {