diff --git a/lib/screens/graph_view.dart b/lib/screens/graph_view.dart index 7b79ef16..1460a7ff 100644 --- a/lib/screens/graph_view.dart +++ b/lib/screens/graph_view.dart @@ -42,6 +42,7 @@ class GraphView extends StatefulWidget { class _GraphViewState extends State { final nodeSize = 50.0; + fork.TransformationController transformationController; @override void initState() { @@ -50,13 +51,18 @@ class _GraphViewState extends State { widget.graph.addListener(() { setState(() {}); }); + + transformationController = fork.TransformationController(); } Offset _getLocationPosition(Offset globalPos) { RenderBox graphViewRenderBox = context.findRenderObject(); assert(graphViewRenderBox != null); - return graphViewRenderBox.globalToLocal(globalPos); + var pos = graphViewRenderBox.globalToLocal(globalPos); + var matrix = transformationController.value; + + return MatrixUtils.transformPoint(Matrix4.inverted(matrix), pos); } @override @@ -127,6 +133,7 @@ class _GraphViewState extends State { panEnabled: true, constrained: false, minScale: 0.1, + transformationController: transformationController, ); } }