summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/com/android/internal/policy/DecorView.java6
-rw-r--r--core/java/com/android/internal/widget/BackgroundFallback.java14
2 files changed, 16 insertions, 4 deletions
diff --git a/core/java/com/android/internal/policy/DecorView.java b/core/java/com/android/internal/policy/DecorView.java
index 1b83708559ed..9823431270d4 100644
--- a/core/java/com/android/internal/policy/DecorView.java
+++ b/core/java/com/android/internal/policy/DecorView.java
@@ -296,7 +296,11 @@ public class DecorView extends FrameLayout implements RootViewSurfaceTaker, Wind
@Override
public void onDraw(Canvas c) {
super.onDraw(c);
- mBackgroundFallback.draw(mContentRoot, c, mWindow.mContentParent);
+
+ // When we are resizing, we need the fallback background to cover the area where we have our
+ // system bar background views as the navigation bar will be hidden during resizing.
+ mBackgroundFallback.draw(isResizing() ? this : mContentRoot, mContentRoot, c,
+ mWindow.mContentParent);
}
@Override
diff --git a/core/java/com/android/internal/widget/BackgroundFallback.java b/core/java/com/android/internal/widget/BackgroundFallback.java
index 4adba4db4f2e..309f80cb0d52 100644
--- a/core/java/com/android/internal/widget/BackgroundFallback.java
+++ b/core/java/com/android/internal/widget/BackgroundFallback.java
@@ -39,14 +39,22 @@ public class BackgroundFallback {
return mBackgroundFallback != null;
}
- public void draw(ViewGroup root, Canvas c, View content) {
+ /**
+ * Draws the fallback background.
+ *
+ * @param boundsView The view determining with which bounds the background should be drawn.
+ * @param root The view group containing the content.
+ * @param c The canvas to draw the background onto.
+ * @param content The view where the actual app content is contained in.
+ */
+ public void draw(ViewGroup boundsView, ViewGroup root, Canvas c, View content) {
if (!hasFallback()) {
return;
}
// Draw the fallback in the padding.
- final int width = root.getWidth();
- final int height = root.getHeight();
+ final int width = boundsView.getWidth();
+ final int height = boundsView.getHeight();
int left = width;
int top = height;
int right = 0;