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

Commit ace9233b authored by Chet Haase's avatar Chet Haase Committed by Android (Google) Code Review
Browse files

Merge "Fix invalidation problem with display lists" into honeycomb

parents c45ec344 77785f9d
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -8249,7 +8249,6 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility
            // If we got here, we're recreating it. Mark it as such to ensure that
            // we copy in child display lists into ours in drawChild()
            mRecreateDisplayList = true;

            if (mDisplayList == null) {
                mDisplayList = mAttachInfo.mHardwareRenderer.createDisplayList(this);
                // If we're creating a new display list, make sure our parent gets invalidated
@@ -8287,6 +8286,9 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility

                mDisplayList.end();
            }
        } else {
            mPrivateFlags |= DRAWN | DRAWING_CACHE_VALID;
            mPrivateFlags &= ~DIRTY_MASK;
        }

        return mDisplayList;
+4 −2
Original line number Diff line number Diff line
@@ -3497,7 +3497,8 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager
                        ((ViewRoot) parent).invalidate();
                        parent = null;
                    } else if (view != null) {
                        if ((mPrivateFlags & DRAWN) == DRAWN) {
                        if ((view.mPrivateFlags & DRAWN) == DRAWN ||
                                (view.mPrivateFlags & DRAWING_CACHE_VALID) == DRAWING_CACHE_VALID) {
                            view.mPrivateFlags &= ~DRAWING_CACHE_VALID;
                            view.mPrivateFlags |= DIRTY;
                            parent = view.mParent;
@@ -3594,7 +3595,8 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager
            ViewDebug.trace(this, ViewDebug.HierarchyTraceType.INVALIDATE_CHILD_IN_PARENT);
        }

        if ((mPrivateFlags & DRAWN) == DRAWN) {
        if ((mPrivateFlags & DRAWN) == DRAWN ||
                (mPrivateFlags & DRAWING_CACHE_VALID) == DRAWING_CACHE_VALID) {
            if ((mGroupFlags & (FLAG_OPTIMIZE_INVALIDATE | FLAG_ANIMATION_DONE)) !=
                        FLAG_OPTIMIZE_INVALIDATE) {
                dirty.offset(location[CHILD_LEFT_INDEX] - mScrollX,