[TIMOB-6391] iOS: Window: iPad only, opening and closing a modal window with split view cause the view to be displaced
GitHub Issue | n/a |
---|---|
Type | Bug |
Priority | High |
Status | Closed |
Resolution | Fixed |
Resolution Date | 2011-12-04T22:51:22.000+0000 |
Affected Version/s | Release 1.8.0.1 |
Fix Version/s | Sprint 2011-48, Release 1.8.0.1 |
Components | iOS |
Labels | qe-ios112911, qe-port, regression |
Reporter | Natalie Huynh |
Assignee | Stephen Tramer |
Created | 2011-11-30T14:21:02.000+0000 |
Updated | 2014-06-19T12:43:40.000+0000 |
Description
Steps to Reproduce:
1. Launch KS-iPad
2. Split View - Plain
3. Click Show Modal
4. Click Dismiss modal
Actual:
the view to be displaced
Expected:
Should be displayed like the launched view
git bisect identifies the offending commit as 508ad73967f7fbfa9aad3b11be48c0938a289aa4.
Regression introduced by fix for linked bugs.
Should also be mentioned that opening the modal forces the device into portrait, even though the modal explicitly states it supports all orientation modes. It should be appearing in landscape when opened; this is also a regression. Note that this only happens IF the original window was opened in portrait orientation, then the device NOT manually rotated into a landscape orientation. It could actually be an iOS bug and will not be addressed in a fix for this issue. *BONUS*: Turns out that it IS fixed by the pull request for this! Awesome.
The regression itself is resolved by pull 809. The behavior the pull is being rejected for has always existed, and is not a regression, but is being documented.
A brief discussion of why the doc change goes in, and why we can't fix this on short notice: It turns out that as part of the modal transition, the transform on the initial view is *ALWAYS* set to the identity transform. In the case of the reported issue (weird redraw of the split view when closing the modal in upside-portrait) here's what was happening: * The transform the modal is currently in is saved * The transform is set to the identity transform * The split view renders given the identity transform * The split view is rotated according to the correct Landscape mode (the one it was previously in) by setting the transform there * Then, once the modal transition is complete, the ORIGINAL transform (for portrait-upside) is re-applied, causing further visual issues with the split rendering. The steps in which the modal transition is manually managing the transform can't be adjusted by us; the problem is both when we're rendering, and when we're cuing rotation. Doing either differently could lead to even *worse* visual problems.
Adding new test case:
Launch for iPhone in landscape. Press button. Portrait modal should appear. Leave physically in landscape. Dismiss modal with cancel. Window should be in landscape.
Closing bug. Verified fix on: Studio: Titanium Studio, build: 1.0.7.201112052104 OS: Mac OS X Lion SDK Build: 1.8.0.1.v20111205164258 Device: ipad 2 (4.3.5)