Clear preordered list in translateBoundsAndIntersectionsInWindowCoordinates

bug:17697944
Change-Id: I1c2296707df5fc29bfc85385d766217afc1063cf
This commit is contained in:
Chris Craik
2014-09-30 12:54:31 -07:00
parent ec89863ade
commit 57c79c8a49

View File

@@ -864,6 +864,7 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager
if (siblingBounds.intersect(bounds)) {
// If an interactive sibling completely covers the child, done.
if (siblingBounds.equals(bounds)) {
if (orderedList != null) orderedList.clear();
return false;
}
// Keep track of the intersection rectangle.
@@ -871,6 +872,7 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager
intersections.add(intersection);
}
}
if (orderedList != null) orderedList.clear();
if (mParent instanceof ViewGroup) {
ViewGroup parentGroup = (ViewGroup) mParent;
@@ -3293,7 +3295,8 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager
/**
* Populates (and returns) mPreSortedChildren with a pre-ordered list of the View's children,
* sorted first by Z, then by child drawing order (if applicable).
* sorted first by Z, then by child drawing order (if applicable). This list must be cleared
* after use to avoid leaking child Views.
*
* Uses a stable, insertion sort which is commonly O(n) for ViewGroups with very few elevated
* children.