From 0e5e9aa8e5528d4a09b861f10b599ee7a1cf7a32 Mon Sep 17 00:00:00 2001 From: Svetoslav Date: Fri, 12 Apr 2013 14:13:20 -0700 Subject: Respect custom view drawing order when dispatching hover events. 1. The event dispatch methods should respect the child drawing order. Hover event dispatch in ViewGroup was not repsecting this order. bug:8606799 Change-Id: Ie2fd3aff1292c21df23a04ca0aa03a97813c44ef --- core/java/android/view/ViewGroup.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'core/java/android/view/ViewGroup.java') diff --git a/core/java/android/view/ViewGroup.java b/core/java/android/view/ViewGroup.java index 311d1d033890..909e4c4a5fc7 100644 --- a/core/java/android/view/ViewGroup.java +++ b/core/java/android/view/ViewGroup.java @@ -1464,10 +1464,13 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager final float y = event.getY(); final int childrenCount = mChildrenCount; if (childrenCount != 0) { + final boolean customChildOrder = isChildrenDrawingOrderEnabled(); final View[] children = mChildren; HoverTarget lastHoverTarget = null; for (int i = childrenCount - 1; i >= 0; i--) { - final View child = children[i]; + final int childIndex = customChildOrder + ? getChildDrawingOrder(childrenCount, i) : i; + final View child = children[childIndex]; if (!canViewReceivePointerEvents(child) || !isTransformedTouchPointInView(x, y, child, null)) { continue; -- cgit v1.2.3