Fix a few split rotation issues when the IME showing
- Fix an issue with the split bounds being wrong upon rotation. The target
offset is relative to the actual task bounds and not the last y offset,
so multiple changing IME insets changes in a row when rotating would
set the window bounds of each task to be wrong, which affects the
positionInParent of the task (relative to the single split root), which
then results in the DefaultTransitionHandler positioning the task
surfaces at the wrong position when the display rotation transition is
actually played
- Fix an issue with the divider position being wrong upon rotation. The
divider position is based on the IME state, but during rotation we can
get numerous insets changes before the display rotation animation is
played, so we should not reset the IME state. In addition, due to races
between the app/WM and the Shell, there may be no insets changes after
the display transition is played, so we need to manually update the
surface position after recreating the divider surface
- Restore handle view visibility & interactive state after recreating the
divider view upon rotation
Flag: None
Test: Repeatedly rotate the device with the IME showing
Test: atest WMShellUnitTests
Bug: 299581029
Change-Id: Id43c388a27ae3be117857688f1ffd73a86bdea30
Signed-off-by: Winson Chung <winsonc@google.com>
Loading
Please register or sign in to comment