mirror of
https://github.com/GitJournal/GitJournal.git
synced 2025-07-01 04:07:53 +08:00
GraphView: Fix dragging the nodes
This was much simpler than expected.
This commit is contained in:
@ -42,6 +42,7 @@ class GraphView extends StatefulWidget {
|
|||||||
|
|
||||||
class _GraphViewState extends State<GraphView> {
|
class _GraphViewState extends State<GraphView> {
|
||||||
final nodeSize = 50.0;
|
final nodeSize = 50.0;
|
||||||
|
fork.TransformationController transformationController;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
@ -50,13 +51,18 @@ class _GraphViewState extends State<GraphView> {
|
|||||||
widget.graph.addListener(() {
|
widget.graph.addListener(() {
|
||||||
setState(() {});
|
setState(() {});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
transformationController = fork.TransformationController();
|
||||||
}
|
}
|
||||||
|
|
||||||
Offset _getLocationPosition(Offset globalPos) {
|
Offset _getLocationPosition(Offset globalPos) {
|
||||||
RenderBox graphViewRenderBox = context.findRenderObject();
|
RenderBox graphViewRenderBox = context.findRenderObject();
|
||||||
assert(graphViewRenderBox != null);
|
assert(graphViewRenderBox != null);
|
||||||
|
|
||||||
return graphViewRenderBox.globalToLocal(globalPos);
|
var pos = graphViewRenderBox.globalToLocal(globalPos);
|
||||||
|
var matrix = transformationController.value;
|
||||||
|
|
||||||
|
return MatrixUtils.transformPoint(Matrix4.inverted(matrix), pos);
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@ -127,6 +133,7 @@ class _GraphViewState extends State<GraphView> {
|
|||||||
panEnabled: true,
|
panEnabled: true,
|
||||||
constrained: false,
|
constrained: false,
|
||||||
minScale: 0.1,
|
minScale: 0.1,
|
||||||
|
transformationController: transformationController,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user