Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9e47cf9a authored by Robert Carr's avatar Robert Carr Committed by android-build-merger
Browse files

Limit seamless rotation to TRANSFORM_INVERSE_DISPLAY children. am: aab09158 am: 87850707

am: 25596584

Change-Id: Iafee88d9e01139a31c4694e963d6e674646895b4
parents 7c54349d 25596584
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -5776,6 +5776,20 @@ public class WindowManagerService extends IWindowManager.Stub
                    rotateSeamlessly = false;
                    break;
                }
                // In what can only be called an unfortunate workaround we require
                // seamlessly rotated child windows to have the TRANSFORM_TO_DISPLAY_INVERSE
                // flag. Due to limitations in the client API, there is no way for
                // the client to set this flag in a race free fashion. If we seamlessly rotate
                // a window which does not have this flag, but then gains it, we will get
                // an incorrect visual result (rotated viewfinder). This means if we want to
                // support seamlessly rotating windows which could gain this flag, we can't
                // rotate windows without it. This limits seamless rotation in N to camera framework
                // users, windows without children, and native code. This is unfortunate but
                // having the camera work is our primary goal.
                if (w.isChildWindow() & w.isVisibleNow() &&
                        !w.mWinAnimator.mSurfaceController.getTransformToDisplayInverse()) {
                    rotateSeamlessly = false;
                }
            }
        }