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
(cherry picked from commit
3ca12be7963b0d018bade286bf4d14cf9938bd6a)
case DRAW_FINISHED_MSG: {
mDrawFinished = true;
if (mAttachedToWindow) {
+ mParent.requestTransparentRegion(SurfaceView.this);
+
notifyDrawFinished();
invalidate();
}
getViewRootImpl().addWindowStoppedCallback(this);
mWindowStopped = false;
- mParent.requestTransparentRegion(this);
mViewVisibility = getVisibility() == VISIBLE;
updateRequestedVisibility();
@Override
public boolean gatherTransparentRegion(Region region) {
- if (isAboveParent()) {
+ if (isAboveParent() || !mDrawFinished) {
return super.gatherTransparentRegion(region);
}