Chromium Code Reviews| 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 0c1a139b05fcdf274a7524a697a33455fca543c7..0b10ff920482988acba87ef5e9d1c722b93ebc54 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; |
| @@ -343,6 +344,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) { |
|
aelias_OOO_until_Jul13
2016/01/28 05:04:55
This can be simplified to:
for (View parent = mCo
ymalik
2016/02/11 01:06:22
We don't check here if the actual parent of the vi
aelias_OOO_until_Jul13
2016/02/24 02:43:58
OK, I stand corrected. Anyway, at least please de
ymalik
2016/03/03 02:10:17
Done.
|
| + 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); |
|
aelias_OOO_until_Jul13
2016/01/28 05:04:55
The Android docs on this method says "Note that if
bokan
2016/01/28 15:53:41
I think you need to set it since the override of f
aelias_OOO_until_Jul13
2016/02/24 02:43:58
How about simply not calling super.fitSystemWindow
ymalik
2016/03/03 02:10:17
super.fitSystemWindows is what actually applies th
|
| + mInsetConsumerView.setTabModelSelector(getTabModelSelector()); |
| + } |
| } |
| /** |
| @@ -522,6 +540,10 @@ public abstract class ChromeActivity extends AsyncInitializationActivity |
| if (mAssistStatusHandler != null) { |
| mAssistStatusHandler.setTabModelSelector(tabModelSelector); |
| } |
| + |
| + if (mInsetConsumerView != null) { |
| + mInsetConsumerView.setTabModelSelector(tabModelSelector); |
| + } |
| } |
| @Override |