| Index: chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
|
| index 22b29fe59eb486db769473727de4b2bda4e29b2e..69e0dbcfd7828d6d4ce555408791adaf39d256c8 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
|
| @@ -204,6 +204,7 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
|
| private ActivityWindowAndroid mWindowAndroid;
|
| private ChromeFullscreenManager mFullscreenManager;
|
| private CompositorViewHolder mCompositorViewHolder;
|
| + private InsetConsumerView mInsetConsumerView;
|
| private ContextualSearchManager mContextualSearchManager;
|
| private ReaderModeManager mReaderModeManager;
|
| private SnackbarManager mSnackbarManager;
|
| @@ -347,6 +348,23 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
|
|
|
| mCompositorViewHolder = (CompositorViewHolder) findViewById(R.id.compositor_view_holder);
|
| mCompositorViewHolder.setRootView(getWindow().getDecorView().getRootView());
|
| +
|
| + // Setting fitsSystemWindows to false ensures that the parent views in
|
| + // the View hierarchy don't consume the insets. ContentViewCore needs
|
| + // the insets to determine the portion of the screen obscured by
|
| + // non-content displaying things such as the OSK.
|
| + View parent = mCompositorViewHolder;
|
| + while (parent.getParent() != null && parent.getParent() instanceof View) {
|
| + parent = (View) parent.getParent();
|
| + parent.setFitsSystemWindows(false);
|
| + }
|
| + // InsetConsumerView consumes the insets instead, so that the actual
|
| + // value of the insets can be stored.
|
| + mInsetConsumerView = (InsetConsumerView) findViewById(R.id.inset_consumer_view);
|
| + if (mInsetConsumerView != null) {
|
| + mInsetConsumerView.setFitsSystemWindows(true);
|
| + mInsetConsumerView.setTabModelSelector(getTabModelSelector());
|
| + }
|
| }
|
|
|
| /**
|
| @@ -526,6 +544,10 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
|
| if (mAssistStatusHandler != null) {
|
| mAssistStatusHandler.setTabModelSelector(tabModelSelector);
|
| }
|
| +
|
| + if (mInsetConsumerView != null) {
|
| + mInsetConsumerView.setTabModelSelector(tabModelSelector);
|
| + }
|
| }
|
|
|
| @Override
|
|
|