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

Commit 596ba2fa authored by Romain Guy's avatar Romain Guy Committed by Android (Google) Code Review
Browse files

Merge "Correctly invalidate views that transition from opaque to non-opaque....

Merge "Correctly invalidate views that transition from opaque to non-opaque. Bug #3337037" into honeycomb
parents fa9d452b c5d55863
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -1813,6 +1813,8 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility
    private int mPrevWidth = -1;
    private int mPrevHeight = -1;

    private boolean mLastIsOpaque;    
    
    /**
     * Convenience value to check for float values that are close enough to zero to be considered
     * zero.
@@ -6743,8 +6745,11 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility
            ViewDebug.trace(this, ViewDebug.HierarchyTraceType.INVALIDATE);
        }

        boolean opaque = isOpaque();
        if ((mPrivateFlags & (DRAWN | HAS_BOUNDS)) == (DRAWN | HAS_BOUNDS) ||
                (invalidateCache && (mPrivateFlags & DRAWING_CACHE_VALID) == DRAWING_CACHE_VALID)) {
                (invalidateCache && (mPrivateFlags & DRAWING_CACHE_VALID) == DRAWING_CACHE_VALID) ||
                opaque != mLastIsOpaque) {
            mLastIsOpaque = opaque;
            mPrivateFlags &= ~DRAWN;
            if (invalidateCache) {
                mPrivateFlags &= ~DRAWING_CACHE_VALID;
+4 −2
Original line number Diff line number Diff line
@@ -710,8 +710,10 @@ public final class ViewRoot extends Handler implements ViewParent,
            // object is not initialized to its backing store, but soon it
            // will be (assuming the window is visible).
            attachInfo.mSurface = mSurface;
            attachInfo.mUse32BitDrawingCache = PixelFormat.formatHasAlpha(lp.format) ||
                    lp.format == PixelFormat.RGBX_8888;
            // We used to use the following condition to choose 32 bits drawing caches:
            // PixelFormat.hasAlpha(lp.format) || lp.format == PixelFormat.RGBX_8888
            // However, windows are now always 32 bits by default, so choose 32 bits
            attachInfo.mUse32BitDrawingCache = true;
            attachInfo.mHasWindowFocus = false;
            attachInfo.mWindowVisibility = viewVisibility;
            attachInfo.mRecomputeGlobalAttributes = false;