|
@@ -277,6 +277,31 @@ class IgnorePointerWidget extends StatelessWidget {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+class AbsorbPointerWidget extends StatelessWidget {
|
|
|
+ final Widget? child;
|
|
|
+ final bool useIntrinsicSize;
|
|
|
+ const AbsorbPointerWidget({
|
|
|
+ required this.child,
|
|
|
+ this.useIntrinsicSize = false,
|
|
|
+ Key? key,
|
|
|
+ }) : super(key: key);
|
|
|
+
|
|
|
+ @override
|
|
|
+ Widget build(BuildContext context) {
|
|
|
+ final sizedChild = useIntrinsicSize
|
|
|
+ ? child
|
|
|
+ : SizedBox(width: 0.0, height: 0.0, child: child);
|
|
|
+
|
|
|
+ final opacity = useIntrinsicSize ? 0.3 : 0.0;
|
|
|
+ return AbsorbPointer(
|
|
|
+ child: Opacity(
|
|
|
+ opacity: opacity,
|
|
|
+ child: sizedChild,
|
|
|
+ ),
|
|
|
+ );
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
class PhantomWidget extends StatelessWidget {
|
|
|
final Widget? child;
|
|
|
final double opacity;
|
|
@@ -442,7 +467,7 @@ class _FakeDragTargetState<T extends DragTargetData>
|
|
|
return SizeTransitionWithIntrinsicSize(
|
|
|
sizeFactor: widget.deleteAnimationController,
|
|
|
axis: Axis.vertical,
|
|
|
- child: IgnorePointerWidget(
|
|
|
+ child: AbsorbPointerWidget(
|
|
|
child: widget.child,
|
|
|
),
|
|
|
);
|
|
@@ -450,7 +475,7 @@ class _FakeDragTargetState<T extends DragTargetData>
|
|
|
return SizeTransitionWithIntrinsicSize(
|
|
|
sizeFactor: widget.insertAnimationController,
|
|
|
axis: Axis.vertical,
|
|
|
- child: IgnorePointerWidget(
|
|
|
+ child: AbsorbPointerWidget(
|
|
|
useIntrinsicSize: true,
|
|
|
child: widget.child,
|
|
|
),
|