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

Commit 3ca12be7 authored by Robert Carr's avatar Robert Carr Committed by Rob Carr
Browse files

SurfaceView: Wait to gather transparent region.

With the introduction of surfaceRedrawNeededAsync we may
be asked to gather the transparent region ahead of the SurfaceView
having been drawn.

Bug: 38324871
Test: Launch Chrome Canary a lot! No Flickers.
Change-Id: I35f09a1bb8316895fa704b10c912e64a8920bd90
parent 387b97e6
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -138,6 +138,8 @@ public class SurfaceView extends View implements ViewRootImpl.WindowStoppedCallb
                case DRAW_FINISHED_MSG: {
                    mDrawFinished = true;
                    if (mAttachedToWindow) {
                        mParent.requestTransparentRegion(SurfaceView.this);

                        notifyDrawFinished();
                        invalidate();
                    }
@@ -247,7 +249,6 @@ public class SurfaceView extends View implements ViewRootImpl.WindowStoppedCallb
        getViewRootImpl().addWindowStoppedCallback(this);
        mWindowStopped = false;

        mParent.requestTransparentRegion(this);
        mViewVisibility = getVisibility() == VISIBLE;
        updateRequestedVisibility();

@@ -352,7 +353,7 @@ public class SurfaceView extends View implements ViewRootImpl.WindowStoppedCallb

    @Override
    public boolean gatherTransparentRegion(Region region) {
        if (isAboveParent()) {
        if (isAboveParent() || !mDrawFinished) {
            return super.gatherTransparentRegion(region);
        }