diff options
3 files changed, 30 insertions, 6 deletions
diff --git a/core/java/com/android/internal/policy/PhoneWindow.java b/core/java/com/android/internal/policy/PhoneWindow.java index 2194c897ff0d..40d760e0064e 100644 --- a/core/java/com/android/internal/policy/PhoneWindow.java +++ b/core/java/com/android/internal/policy/PhoneWindow.java @@ -537,8 +537,13 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { } mContentParent.requestApplyInsets(); final Callback cb = getCallback(); - if (cb != null && !isDestroyed()) { - cb.onContentChanged(); + if (!isDestroyed()) { + if (cb != null) { + cb.onContentChanged(); + } + if (mDecorContentParent != null) { + mDecorContentParent.notifyContentChanged(); + } } mContentParentExplicitlySet = true; } @@ -568,8 +573,13 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { } mContentParent.requestApplyInsets(); final Callback cb = getCallback(); - if (cb != null && !isDestroyed()) { - cb.onContentChanged(); + if (!isDestroyed()) { + if (cb != null) { + cb.onContentChanged(); + } + if (mDecorContentParent != null) { + mDecorContentParent.notifyContentChanged(); + } } mContentParentExplicitlySet = true; } @@ -586,8 +596,13 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { mContentParent.addView(view, params); mContentParent.requestApplyInsets(); final Callback cb = getCallback(); - if (cb != null && !isDestroyed()) { - cb.onContentChanged(); + if (!isDestroyed()) { + if (cb != null) { + cb.onContentChanged(); + } + if (mDecorContentParent != null) { + mDecorContentParent.notifyContentChanged(); + } } } diff --git a/core/java/com/android/internal/widget/ActionBarOverlayLayout.java b/core/java/com/android/internal/widget/ActionBarOverlayLayout.java index 68328252abaf..ff57fd4fe2ce 100644 --- a/core/java/com/android/internal/widget/ActionBarOverlayLayout.java +++ b/core/java/com/android/internal/widget/ActionBarOverlayLayout.java @@ -898,6 +898,13 @@ public class ActionBarOverlayLayout extends ViewGroup implements DecorContentPar mDecorToolbar.dismissPopupMenus(); } + @Override + public void notifyContentChanged() { + mLastBaseContentInsets.setEmpty(); + mLastBaseInnerInsets = WindowInsets.CONSUMED; + mLastInnerInsets = WindowInsets.CONSUMED; + } + public static class LayoutParams extends MarginLayoutParams { public LayoutParams(Context c, AttributeSet attrs) { super(c, attrs); diff --git a/core/java/com/android/internal/widget/DecorContentParent.java b/core/java/com/android/internal/widget/DecorContentParent.java index ac524f929d1b..8d6cfd1018c0 100644 --- a/core/java/com/android/internal/widget/DecorContentParent.java +++ b/core/java/com/android/internal/widget/DecorContentParent.java @@ -22,6 +22,7 @@ import android.os.Parcelable; import android.util.SparseArray; import android.view.Menu; import android.view.Window; + import com.android.internal.view.menu.MenuPresenter; /** @@ -49,4 +50,5 @@ public interface DecorContentParent { void saveToolbarHierarchyState(SparseArray<Parcelable> toolbarStates); void restoreToolbarHierarchyState(SparseArray<Parcelable> toolbarStates); void dismissPopups(); + void notifyContentChanged(); } |