openfl / lime

A foundational Haxe framework for cross-platform development
https://lime.openfl.org/
MIT License
760 stars 372 forks source link

iOS - popover views stop responding to taps after backgrounding/re-foregrounding app #1326

Open Tw1ddle opened 5 years ago

Tw1ddle commented 5 years ago

On iOS popover views stop responding to taps after the user backgrounds and then re-foregrounds the app. Any views then remain stuck on top of everything and unresponsive to input.

My repro steps: launch app on an iPhone 6 Plus running iOS 12.3, show a GameCenter authentication/login view (e.g. using https://github.com/HaxeExtension/extension-gamecenter). Notice that the view will receive touch input. Hit the home button (backgrounding the app), and then select the app icon to bring it back to foreground. At this point, the main stage/game will be receiving all the touch input, while the popovers will remain on top, unresponsive to input.

The same issue occurs with different popovers like interstitial ads, webviews etc, so isn't specific to the GameCenter authentication popover/GameCenter haxelib.

I couldn't repro any behavior like this on Android, so this is most likely an iOS-specific problem.

Workaround: I downgraded OpenFL 8.8.0 and lime 7.2.1 and this issue stopped occurring, so this only appears to affect the most recent versions of Lime/OpenFL.

Tw1ddle commented 5 years ago

I investigated this more, pretty sure it's a bug in SDL that can be patched around as discussed here: https://discourse.libsdl.org/t/touch-mouse-broken-on-ios/26139

jgranick commented 5 years ago

It looks like there are additional fixes in the dev version of SDL that also refactor how this code was handled

We'll have to update SDL entirely and see how it works out