Merge "Reset insets when inset computer is removed." into klp-dev
This commit is contained in:
@@ -18724,6 +18724,11 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
|
||||
final ViewTreeObserver.InternalInsetsInfo mGivenInternalInsets
|
||||
= new ViewTreeObserver.InternalInsetsInfo();
|
||||
|
||||
/**
|
||||
* Set to true when mGivenInternalInsets is non-empty.
|
||||
*/
|
||||
boolean mHasNonEmptyGivenInternalInsets;
|
||||
|
||||
/**
|
||||
* All views in the window's hierarchy that serve as scroll containers,
|
||||
* used to determine if the window can be resized or must be panned
|
||||
|
||||
@@ -1348,8 +1348,12 @@ public final class ViewRootImpl implements ViewParent,
|
||||
|| (lp.height == ViewGroup.LayoutParams.WRAP_CONTENT &&
|
||||
frame.height() < desiredWindowHeight && frame.height() != mHeight));
|
||||
|
||||
// Determine whether to compute insets.
|
||||
// If there are no inset listeners remaining then we may still need to compute
|
||||
// insets in case the old insets were non-empty and must be reset.
|
||||
final boolean computesInternalInsets =
|
||||
attachInfo.mTreeObserver.hasComputeInternalInsetsListeners();
|
||||
attachInfo.mTreeObserver.hasComputeInternalInsetsListeners()
|
||||
|| attachInfo.mHasNonEmptyGivenInternalInsets;
|
||||
|
||||
boolean insetsPending = false;
|
||||
int relayoutResult = 0;
|
||||
@@ -1764,6 +1768,7 @@ public final class ViewRootImpl implements ViewParent,
|
||||
|
||||
// Compute new insets in place.
|
||||
attachInfo.mTreeObserver.dispatchOnComputeInternalInsets(insets);
|
||||
attachInfo.mHasNonEmptyGivenInternalInsets = !insets.isEmpty();
|
||||
|
||||
// Tell the window manager.
|
||||
if (insetsPending || !mLastGivenInsets.equals(insets)) {
|
||||
|
||||
@@ -241,6 +241,13 @@ public final class ViewTreeObserver {
|
||||
mTouchableInsets = TOUCHABLE_INSETS_FRAME;
|
||||
}
|
||||
|
||||
boolean isEmpty() {
|
||||
return contentInsets.isEmpty()
|
||||
&& visibleInsets.isEmpty()
|
||||
&& touchableRegion.isEmpty()
|
||||
&& mTouchableInsets == TOUCHABLE_INSETS_FRAME;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
int result = contentInsets.hashCode();
|
||||
|
||||
Reference in New Issue
Block a user