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
Loading
Please register or sign in to comment