diff --git a/lib/dragmarker.dart b/lib/dragmarker.dart index 4f32f0b..0978719 100644 --- a/lib/dragmarker.dart +++ b/lib/dragmarker.dart @@ -80,6 +80,14 @@ class _DragMarkerWidgetState extends State { super.initState(); } + @override + void didUpdateWidget(covariant DragMarkerWidget oldWidget) { + super.didUpdateWidget(oldWidget); + if (!widget.marker.preservePosition && !isDragging) { + markerPoint = widget.marker.point; + } + } + @override Widget build(BuildContext context) { DragMarker marker = widget.marker; @@ -338,6 +346,7 @@ class DragMarker { final double nearEdgeRatio; final double nearEdgeSpeed; final bool rotateMarker; + final bool preservePosition; late Anchor anchor; DragMarker({ @@ -361,6 +370,7 @@ class DragMarker { this.nearEdgeRatio = 1.5, this.nearEdgeSpeed = 1.0, this.rotateMarker = true, + this.preservePosition = true, AnchorPos? anchorPos, }) { anchor = Anchor.forPos(anchorPos, width, height);