I’ve verified reports from customers that when using iOS 17.2 on iPad 12.9 Pro, device orientation changes no longer work as expected.
Some weird top corner offset comes into play, and width/height go very wrong.
I’ve verified this behaviour with the iOS 17.2 Simulator.
I don’t see it with iOS 17.0.1 or earlier, when using iPad 12.9 Pro Simulators.
I don’t see it on the smaller iPad simulators, with any iOS version.
I’ve not yet been able to figure this out, despite a lot of trying, but am wondering if it because JUCE has not yet moved to using UIScenes; i.e. by introducing the use of:
I can only speculate, but wonder if it it could be related to the underlying UIScene (which iOS auto-creates if you’re not using the above method) and somehow or other restores state incorrectly using NSUserActivity and this method on UIScene…:
Please can you confirm that you’ve tested with the current develop branch?
Do you see the problem in any of the JUCE examples?
For me, the DemoRunner responds correctly to orientation changes on iOS 17.2 in the iPad 12.9 6th Gen Simulator. The various split-screen and overlay modes also seem to work as expected.
Hi @reuk I’ve actually implemented a minor change (see below) to the JUCE codebase, which puts the UIScheme implementation under JUCE control, which is I guess where we’d all like it
My motivation for doing the work below, was just in case that resolved my issue - but it didn’t. That means that I’m pretty certain that the issue in question, somehow, is in my own code. I just can’t figure it out. It is just a real stinker - but that is my problem!
Note: app initialisation is moved to UISceneDelegate:willConnectToSession:connectionOptions
On a side note, when the app rotates, this is called:
I’m pleased to say that I’ve also fixed my weird rotation problem - which is where this all started!
I suspect that things are playing up for me because my app is a really big beast, and takes a longer time to do some things than other apps. So, this points probably points to some sort of underlying timing-related issue in the JUCE iOS layer. Of course, I don’t really know, I’m just speculating. But anyhow, here is my simple fix.