614 {
615 switch (_blockingPolicy) {
617
618 self.delayingRecognizer.state = UIGestureRecognizerStateEnded;
619
620
621
622
623
624
625
626
627
628 if (@available(iOS 26.0, *)) {
629
630
631
632
633 NSNumber* isWorkaroundDisabled =
634 [[NSBundle mainBundle] objectForInfoDictionaryKey:@"FLTDisableWebViewGestureReset"];
635 if (!isWorkaroundDisabled.boolValue) {
636 [self searchAndFixWebView:self.embeddedView];
637 }
638 } else if (@available(iOS 18.2, *)) {
639
640
641
642
643
644
646 [self removeGestureRecognizer:self.delayingRecognizer];
647 [self addGestureRecognizer:self.delayingRecognizer];
648 }
649 }
650
651 break;
653 if (self.delayingRecognizer.touchedEndedWithoutBlocking) {
654
655
656
657 self.delayingRecognizer.state = UIGestureRecognizerStateEnded;
658 } else {
659
660
661
662 self.delayingRecognizer.shouldEndInNextTouchesEnded = YES;
663 }
664 break;
665 default:
666 break;
667 }
668}
@ FlutterPlatformViewGestureRecognizersBlockingPolicyEager
@ FlutterPlatformViewGestureRecognizersBlockingPolicyWaitUntilTouchesEnded