Merge "Support view transformations when positioning floating CAB" into nyc-dev am: 1fe7ed557d

am: 5efc1443be

* commit '5efc1443beb23491ed507d9c3ce4783dcdb7c934':
  Support view transformations when positioning floating CAB

Change-Id: I1ba53d9b92837ecee8bb1fc2e281730ca9cbc619
This commit is contained in:
Justin Klaassen
2016-04-28 20:57:25 +00:00
committed by android-build-merger

View File

@@ -24,6 +24,8 @@ import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewConfiguration;
import android.view.ViewGroup;
import android.view.ViewParent;
import com.android.internal.R;
import com.android.internal.util.Preconditions;
@@ -165,7 +167,17 @@ public class FloatingActionMode extends ActionMode {
checkToolbarInitialized();
mContentRectOnScreen.set(mContentRect);
mContentRectOnScreen.offset(mViewPositionOnScreen[0], mViewPositionOnScreen[1]);
// Offset the content rect into screen coordinates, taking into account any transformations
// that may be applied to the originating view or its ancestors.
final ViewParent parent = mOriginatingView.getParent();
if (parent instanceof ViewGroup) {
((ViewGroup) parent).getChildVisibleRect(
mOriginatingView, mContentRectOnScreen, null /* offset */);
mContentRectOnScreen.offset(mRootViewPositionOnScreen[0], mRootViewPositionOnScreen[1]);
} else {
mContentRectOnScreen.offset(mViewPositionOnScreen[0], mViewPositionOnScreen[1]);
}
if (isContentRectWithinBounds()) {
mFloatingToolbarVisibilityHelper.setOutOfBounds(false);