Merge "Support view transformations when positioning floating CAB" into nyc-dev

am: 1fe7ed557d

* commit '1fe7ed557de90c6992f6d36a485cd63b651a51dd':
  Support view transformations when positioning floating CAB

Change-Id: I988f50bfedf7c8a0de20eac2e50cf26e6ee422ea
This commit is contained in:
Justin Klaassen
2016-04-28 20:53:12 +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);