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:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user