Hide IME adjust dims when exiting split mode
If the IME is showing while exiting split mode, the IME-adjust dims
won't be changed to hidden. This makes sure to hide the IME-adjust dims
when leaving split mode.
Fix: 168505685
Test: atest SystemUITests
Test: atest WMShellUnitTests
Test: manual check switching user while showing IME in split mode,
there won't have overlapping dim remains on the screen.
Change-Id: I778df71616827c01f415231d8bbc20b037181d10
This commit is contained in:
@@ -845,15 +845,7 @@ public class DividerView extends FrameLayout implements OnTouchListener,
|
|||||||
}
|
}
|
||||||
|
|
||||||
void enterSplitMode(boolean isHomeStackResizable) {
|
void enterSplitMode(boolean isHomeStackResizable) {
|
||||||
post(() -> {
|
setHidden(false);
|
||||||
final SurfaceControl sc = getWindowSurfaceControl();
|
|
||||||
if (sc == null) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
Transaction t = mTiles.getTransaction();
|
|
||||||
t.show(sc).apply();
|
|
||||||
mTiles.releaseTransaction(t);
|
|
||||||
});
|
|
||||||
|
|
||||||
SnapTarget miniMid =
|
SnapTarget miniMid =
|
||||||
mSplitLayout.getMinimizedSnapAlgorithm(isHomeStackResizable).getMiddleTarget();
|
mSplitLayout.getMinimizedSnapAlgorithm(isHomeStackResizable).getMiddleTarget();
|
||||||
@@ -880,14 +872,19 @@ public class DividerView extends FrameLayout implements OnTouchListener,
|
|||||||
}
|
}
|
||||||
|
|
||||||
void exitSplitMode() {
|
void exitSplitMode() {
|
||||||
// Reset tile bounds
|
// The view is going to be removed right after this function involved, updates the surface
|
||||||
|
// in the current thread instead of posting it to the view's UI thread.
|
||||||
final SurfaceControl sc = getWindowSurfaceControl();
|
final SurfaceControl sc = getWindowSurfaceControl();
|
||||||
if (sc == null) {
|
if (sc == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Transaction t = mTiles.getTransaction();
|
Transaction t = mTiles.getTransaction();
|
||||||
t.hide(sc).apply();
|
t.hide(sc);
|
||||||
|
mImeController.setDimsHidden(t, true);
|
||||||
|
t.apply();
|
||||||
mTiles.releaseTransaction(t);
|
mTiles.releaseTransaction(t);
|
||||||
|
|
||||||
|
// Reset tile bounds
|
||||||
int midPos = mSplitLayout.getSnapAlgorithm().getMiddleTarget().position;
|
int midPos = mSplitLayout.getSnapAlgorithm().getMiddleTarget().position;
|
||||||
mWindowManagerProxy.applyResizeSplits(midPos, mSplitLayout);
|
mWindowManagerProxy.applyResizeSplits(midPos, mSplitLayout);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user