mirror of
https://github.com/hneemann/Digital.git
synced 2025-09-17 00:44:40 -04:00
fixes #262
This commit is contained in:
parent
346b7c4ca6
commit
1b8f5ae933
@ -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) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user