From b1d51ad7ec92c3451d43667462e3db90d28b4469 Mon Sep 17 00:00:00 2001 From: Tobias Kammerer Date: Tue, 1 Sep 2020 20:25:29 +0200 Subject: [PATCH] Fix iOS key events in platform views This PR fixes key events not getting passed through to platform views in iOS (regression introduced here: https://github.com/flutter/engine/pull/20972). The only change made was calling the `super` method in the event handlers. Issue: https://github.com/flutter/flutter/issues/74044 --- .../ios/framework/Source/FlutterViewController.mm | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/shell/platform/darwin/ios/framework/Source/FlutterViewController.mm b/shell/platform/darwin/ios/framework/Source/FlutterViewController.mm index 738bc605e0098..19fbb42a0d2d3 100644 --- a/shell/platform/darwin/ios/framework/Source/FlutterViewController.mm +++ b/shell/platform/darwin/ios/framework/Source/FlutterViewController.mm @@ -1096,26 +1096,33 @@ - (void)dispatchPresses:(NSSet*)presses API_AVAILABLE(ios(13.4)) { } } -- (void)pressesBegan:(NSSet*)presses withEvent:(UIEvent*)event API_AVAILABLE(ios(9.0)) { +- (void)pressesBegan:(NSSet*)presses + withEvent:(UIPressesEvent*)event API_AVAILABLE(ios(9.0)) { + [super pressesBegan:presses withEvent:event]; if (@available(iOS 13.4, *)) { [self dispatchPresses:presses]; } } -- (void)pressesChanged:(NSSet*)presses withEvent:(UIEvent*)event API_AVAILABLE(ios(9.0)) { +- (void)pressesChanged:(NSSet*)presses + withEvent:(UIPressesEvent*)event API_AVAILABLE(ios(9.0)) { + [super pressesChanged:presses withEvent:event]; if (@available(iOS 13.4, *)) { [self dispatchPresses:presses]; } } -- (void)pressesEnded:(NSSet*)presses withEvent:(UIEvent*)event API_AVAILABLE(ios(9.0)) { +- (void)pressesEnded:(NSSet*)presses + withEvent:(UIPressesEvent*)event API_AVAILABLE(ios(9.0)) { + [super pressesEnded:presses withEvent:event]; if (@available(iOS 13.4, *)) { [self dispatchPresses:presses]; } } - (void)pressesCancelled:(NSSet*)presses - withEvent:(UIEvent*)event API_AVAILABLE(ios(9.0)) { + withEvent:(UIPressesEvent*)event API_AVAILABLE(ios(9.0)) { + [super pressesCancelled:presses withEvent:event]; if (@available(iOS 13.4, *)) { [self dispatchPresses:presses]; }