diff --git a/scribe/lib/scribe/ai/presentation/utils/modal/ai_scribe_modal_manager.dart b/scribe/lib/scribe/ai/presentation/utils/modal/ai_scribe_modal_manager.dart index ffeda2026..743c4f261 100644 --- a/scribe/lib/scribe/ai/presentation/utils/modal/ai_scribe_modal_manager.dart +++ b/scribe/lib/scribe/ai/presentation/utils/modal/ai_scribe_modal_manager.dart @@ -67,6 +67,7 @@ class AiScribeModalManager { crossAxisAlignment: crossAxisAlignment, onSelectAiScribeSuggestionAction: onSelectAiScribeSuggestionAction, ), + barrierDismissible: false, barrierColor: AIScribeColors.dialogBarrier, ); } diff --git a/scribe/lib/scribe/ai/presentation/widgets/modal/ai_scribe_suggestion_widget.dart b/scribe/lib/scribe/ai/presentation/widgets/modal/ai_scribe_suggestion_widget.dart index b4b8c9b58..0eb54f7de 100644 --- a/scribe/lib/scribe/ai/presentation/widgets/modal/ai_scribe_suggestion_widget.dart +++ b/scribe/lib/scribe/ai/presentation/widgets/modal/ai_scribe_suggestion_widget.dart @@ -109,7 +109,7 @@ class _AiScribeSuggestionWidgetState extends State { return PointerInterceptor( child: GestureDetector( behavior: HitTestBehavior.opaque, - onTap: Navigator.of(context).pop, + onTap: _handleClickOutside, child: Stack( children: [ PositionedDirectional( @@ -194,4 +194,11 @@ class _AiScribeSuggestionWidgetState extends State { bool get _hasAnchor => widget.buttonPosition != null && widget.buttonSize != null; + + void _handleClickOutside() { + final result = _state.value.getOrElse(() => UIState.idle); + if (result is GenerateAITextSuccess || result is GenerateAITextFailure) { + Navigator.of(context).pop(); + } + } }