diff options
author | Ming-Shin Lu <lumark@google.com> | 2021-05-07 13:20:24 +0800 |
---|---|---|
committer | Ming-Shin Lu <lumark@google.com> | 2021-05-10 17:15:19 +0800 |
commit | 0638a9f91f2539ceed515b679ab3f71e51eb7fee (patch) | |
tree | af9a6e901553a8d67c995f5457d9ade968b2671b /tools/aapt2/java/JavaClassGenerator_test.cpp | |
parent | f53378bd31e91b65f1552036d306d7d970dec60b (diff) |
Fix Keyboard covered input box after leaving split screen
When leaving split-screen, task organizer will trigger transaction to
reparent task and then invoking updateAboveInsetsState for all windows
when updating the IME layering target through the below call path:
InsetsStateController.updateAboveInsetsState
DisplayContent.setImeLayeringTargetInner
DisplayContent.computeImeTarget
DisplayContent.updateFocusedWindowLocked
..
DisplayContent.layoutAndAssignWindowLayersIfNeeded
Task.reparent
..
WindowOrganizerController.applyTransaction
However, DC#forAllWindows will skip IME windows in
WindowState#applyImeWindowsIfNeeded since split-screen mode not yet be
changed. that caused the application will get mAboveInsetsState when
dispatching to the client because system thought the app window is above
IME.
Use isSplitScreenModeActivated() to consolide the split-screen check in
case misjudge for this issue.
Fix: 186746922
Test: atest InsetsStateControllerTest
Test: manual as issue steps
Change-Id: I47bcb1234a49ea35c5e0d7281973fb3237e420eb
Diffstat (limited to 'tools/aapt2/java/JavaClassGenerator_test.cpp')
0 files changed, 0 insertions, 0 deletions