Sync insets leash position with shell seamless rotation
With shell transition, the individual seamless rotated windows
are managed by AsyncRotationController. When the window is drawn
in new rotation, its seamless transformation will be cleared to
fit in new screen coordinate. If the update of insets surface
position is in a different transaction, the position may be updated
before restoring the transformation. That causes the window to show
at a weird position.
Instead of using legacy startSeamlessRotation/finishSeamlessRotation
of InsetsSourceProvider which stops the insets animation, the
synchronization can be done by merging the transaction to the one
that will update the transformation. This may be also more efficiency
because no need to remove/recreate the leash.
Bug: 223396866
Test: Use 3-button navigation.
Launch landscape app from portrait launcher.
The navigation bar should not disappear for a split second.
Change-Id: I51ebd9f2c90b2b4d12f77d1361acc66ab7777b38
Loading
Please register or sign in to comment