diff --git a/sojorn_app/lib/widgets/radial_menu_overlay.dart b/sojorn_app/lib/widgets/radial_menu_overlay.dart index f8773d9..275c31e 100644 --- a/sojorn_app/lib/widgets/radial_menu_overlay.dart +++ b/sojorn_app/lib/widgets/radial_menu_overlay.dart @@ -37,6 +37,13 @@ class _RadialMenuOverlayState extends State vsync: this, ); + // Rebuild when animation dismisses so the SizedBox.shrink check fires + _controller.addStatusListener((status) { + if (status == AnimationStatus.dismissed && mounted) { + setState(() {}); + } + }); + _scaleAnimation = CurvedAnimation( parent: _controller, curve: Curves.easeOutBack, @@ -72,9 +79,11 @@ class _RadialMenuOverlayState extends State return const SizedBox.shrink(); } - return GestureDetector( - onTap: widget.onDismiss, - child: AnimatedBuilder( + return IgnorePointer( + ignoring: !widget.isVisible, + child: GestureDetector( + onTap: widget.onDismiss, + child: AnimatedBuilder( animation: _controller, builder: (context, child) { return Stack( @@ -102,6 +111,7 @@ class _RadialMenuOverlayState extends State ); }, ), + ), ); }