644 {
645 switch (_blockingPolicy) {
647
648 break;
650
651 self.delayingRecognizer.state = UIGestureRecognizerStateEnded;
652
653
654
655
656
657
658
659
660
661 if (@available(iOS 26.0, *)) {
662
663
664
665
666 NSNumber* isWorkaroundDisabled =
667 [[NSBundle mainBundle] objectForInfoDictionaryKey:@"FLTDisableWebViewGestureReset"];
668 if (!isWorkaroundDisabled.boolValue) {
669 [self searchAndFixWebView:self.embeddedView];
670 }
671 } else if (@available(iOS 18.2, *)) {
672
673
674
676 [self removeGestureRecognizer:self.delayingRecognizer];
677 [self addGestureRecognizer:self.delayingRecognizer];
678 }
679 }
680
681 break;
683 if (self.delayingRecognizer.touchedEndedWithoutBlocking) {
684
685
686
687 self.delayingRecognizer.state = UIGestureRecognizerStateEnded;
688 } else {
689
690
691
692 self.delayingRecognizer.shouldEndInNextTouchesEnded = YES;
693 }
694 break;
695 default:
696 break;
697 }
698}
@ FlutterPlatformViewGestureRecognizersBlockingPolicyEager
@ FlutterPlatformViewGestureRecognizersBlockingPolicyWaitUntilTouchesEnded
@ FlutterPlatformViewGestureRecognizersBlockingPolicyDoNotBlockGesture