From 601523ad007923779d156aaa8dc229468773e48c Mon Sep 17 00:00:00 2001 From: Abodunrinwa Toki Date: Thu, 4 Jun 2015 22:17:47 +0100 Subject: TextView: Make sure the contentRect is within visibile bounds. Bug: 21620604 Change-Id: Idd0d891e423316b2ebacf883fd3cbfff9ef69743 --- core/java/com/android/internal/view/FloatingActionMode.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'core') diff --git a/core/java/com/android/internal/view/FloatingActionMode.java b/core/java/com/android/internal/view/FloatingActionMode.java index 93d2a1d..89cac4c 100644 --- a/core/java/com/android/internal/view/FloatingActionMode.java +++ b/core/java/com/android/internal/view/FloatingActionMode.java @@ -127,11 +127,16 @@ public class FloatingActionMode extends ActionMode { private void repositionToolbar() { checkToolbarInitialized(); + + mContentRectOnWindow.set(mContentRect); + mContentRectOnWindow.offset(mViewPosition[0], mViewPosition[1]); + // Make sure that content rect is not out of the view's visible bounds. mContentRectOnWindow.set( - mContentRect.left + mViewPosition[0], - mContentRect.top + mViewPosition[1], - mContentRect.right + mViewPosition[0], - mContentRect.bottom + mViewPosition[1]); + Math.max(mContentRectOnWindow.left, mViewRect.left), + Math.max(mContentRectOnWindow.top, mViewRect.top), + Math.min(mContentRectOnWindow.right, mViewRect.right), + Math.min(mContentRectOnWindow.bottom, mViewRect.bottom)); + if (!mContentRectOnWindow.equals(mPreviousContentRectOnWindow)) { if (!mPreviousContentRectOnWindow.isEmpty()) { notifyContentRectMoving(); -- cgit v1.1