Merge "Apply the transaction to the leash before it is sent to the client" into rvc-dev am: 3eea61dd1f am: 7f0cb3becd am: de047a6dcc

Change-Id: I3fe49b027c134b5842d6770f5c83cdba1f5f7a85
This commit is contained in:
Tiger Huang
2020-04-15 18:21:51 +00:00
committed by Automerger Merge Worker

View File

@@ -266,7 +266,7 @@ class InsetsSourceProvider {
if (getSource().getType() == ITYPE_IME) {
setClientVisible(InsetsState.getDefaultVisibility(mSource.getType()));
}
final Transaction t = mDisplayContent.getPendingTransaction();
final Transaction t = mDisplayContent.mWmService.mTransactionFactory.get();
mWin.startAnimation(t, mAdapter, !mClientVisible /* hidden */,
ANIMATION_TYPE_INSETS_CONTROL, null /* animationFinishedCallback */);
final SurfaceControl leash = mAdapter.mCapturedLeash;
@@ -281,6 +281,9 @@ class InsetsSourceProvider {
t.deferTransactionUntil(mWin.getSurfaceControl(), barrier, frameNumber);
t.deferTransactionUntil(leash, barrier, frameNumber);
}
// Applying the transaction here can prevent the client from applying its transaction sooner
// than us which makes us overwrite the client's operation to the leash.
t.apply();
mControlTarget = target;
mControl = new InsetsSourceControl(mSource.getType(), leash,
new Point(mWin.getWindowFrames().mFrame.left, mWin.getWindowFrames().mFrame.top));