diff options
| -rw-r--r-- | core/java/android/view/SurfaceView.java | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/core/java/android/view/SurfaceView.java b/core/java/android/view/SurfaceView.java index d7f25392900d..0722699de6e6 100644 --- a/core/java/android/view/SurfaceView.java +++ b/core/java/android/view/SurfaceView.java @@ -320,8 +320,14 @@ public class SurfaceView extends View { * <p>Calling this overrides any previous call to {@link #setZOrderMediaOverlay}. */ public void setZOrderOnTop(boolean onTop) { - mWindowType = onTop ? WindowManager.LayoutParams.TYPE_APPLICATION_PANEL - : WindowManager.LayoutParams.TYPE_APPLICATION_MEDIA; + if (onTop) { + mWindowType = WindowManager.LayoutParams.TYPE_APPLICATION_PANEL; + // ensures the surface is placed below the IME + mLayout.flags |= WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM; + } else { + mWindowType = WindowManager.LayoutParams.TYPE_APPLICATION_MEDIA; + mLayout.flags &= ~WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM; + } } /** |