diff options
| -rw-r--r-- | core/java/android/app/Dialog.java | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/core/java/android/app/Dialog.java b/core/java/android/app/Dialog.java index 4a168fe11c20..e4a05834331f 100644 --- a/core/java/android/app/Dialog.java +++ b/core/java/android/app/Dialog.java @@ -321,16 +321,20 @@ public class Dialog implements DialogInterface, Window.Callback, } WindowManager.LayoutParams l = mWindow.getAttributes(); + boolean restoreSoftInputMode = false; if ((l.softInputMode & WindowManager.LayoutParams.SOFT_INPUT_IS_FORWARD_NAVIGATION) == 0) { - WindowManager.LayoutParams nl = new WindowManager.LayoutParams(); - nl.copyFrom(l); - nl.softInputMode |= + l.softInputMode |= WindowManager.LayoutParams.SOFT_INPUT_IS_FORWARD_NAVIGATION; - l = nl; + restoreSoftInputMode = true; } mWindowManager.addView(mDecor, l); + if (restoreSoftInputMode) { + l.softInputMode &= + ~WindowManager.LayoutParams.SOFT_INPUT_IS_FORWARD_NAVIGATION; + } + mShowing = true; sendShowMessage(); |