Loading core/java/android/view/View.java +3 −1 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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; Loading core/java/android/view/ViewGroup.java +4 −2 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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, Loading Loading
core/java/android/view/View.java +3 −1 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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; Loading
core/java/android/view/ViewGroup.java +4 −2 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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, Loading