 Chromium Code Reviews
 Chromium Code Reviews Issue 1386403003:
  Resize only the virtual viewport when the OSK triggers a resize.  (Closed) 
  Base URL: https://chromium.googlesource.com/chromium/src.git@master
    
  
    Issue 1386403003:
  Resize only the virtual viewport when the OSK triggers a resize.  (Closed) 
  Base URL: https://chromium.googlesource.com/chromium/src.git@master| 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 162d1fa3d260bacf4d5b0edd52bc7e306bf99bb9..f1d9c094b4c3ad7e7225c4fa9d3250af981d6c40 100644 | 
| --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java | 
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java | 
| @@ -205,6 +205,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; | 
| @@ -352,8 +353,20 @@ public abstract class ChromeActivity extends AsyncInitializationActivity | 
| // black status bar | 
| ApiCompatibilityUtils.setStatusBarColor(getWindow(), Color.BLACK); | 
| + ViewGroup rootView = (ViewGroup) getWindow().getDecorView().getRootView(); | 
| mCompositorViewHolder = (CompositorViewHolder) findViewById(R.id.compositor_view_holder); | 
| - mCompositorViewHolder.setRootView(getWindow().getDecorView().getRootView()); | 
| + mCompositorViewHolder.setRootView(rootView); | 
| + | 
| + // Setting fitsSystemWindows to false ensures that the root view | 
| + // doesn't consume the insets. | 
| + rootView.setFitsSystemWindows(false); | 
| 
Ted C
2016/03/14 22:53:06
It would be nice to guard these lines with ChromeS
 
ymalik
2016/03/15 16:23:26
I like the idea of rolling the inset logic out now
 | 
| + | 
| + // Add a custom view right after the root view that stores the insets | 
| + // to access later. ContentViewCore needs the insets to determine the | 
| + // portion of the screen obscured by non-content displaying things | 
| + // such as the OSK. | 
| + mInsetConsumerView = InsetConsumerView.create(this); | 
| + rootView.addView(mInsetConsumerView, 0); | 
| } | 
| /** | 
| @@ -1059,6 +1072,15 @@ public abstract class ChromeActivity extends AsyncInitializationActivity | 
| return mTabModelSelector; | 
| } | 
| + /** | 
| + * Returns the {@link InsetConsumerView} that has the current system window | 
| + * insets information. | 
| + * @return The {@link InsetConsumerView}, possibly null. | 
| + */ | 
| + public InsetConsumerView getInsetConsumerView() { | 
| + return mInsetConsumerView; | 
| + } | 
| + | 
| @Override | 
| public TabCreatorManager.TabCreator getTabCreator(boolean incognito) { | 
| return incognito ? mIncognitoTabCreator : mRegularTabCreator; |