diff --git a/java/src/com/android/inputmethod/keyboard/MainKeyboardView.java b/java/src/com/android/inputmethod/keyboard/MainKeyboardView.java
index f513ac155a6932228df214b57fb0101cec9bccff..e7cfc453f54a49ab9d5384c2a9d849b0191feef0 100644
--- a/java/src/com/android/inputmethod/keyboard/MainKeyboardView.java
+++ b/java/src/com/android/inputmethod/keyboard/MainKeyboardView.java
@@ -666,6 +666,10 @@ public final class MainKeyboardView extends KeyboardView implements PointerTrack
     @Override
     public void onDismissMoreKeysPanel() {
         dimEntireKeyboard(false /* dimmed */);
+        dismissMoreKeysPanel();
+    }
+
+    private void dismissMoreKeysPanel() {
         if (isShowingMoreKeysPanel()) {
             mMoreKeysPanel.removeFromParent();
             mMoreKeysPanel = null;
@@ -731,6 +735,7 @@ public final class MainKeyboardView extends KeyboardView implements PointerTrack
     }
 
     public void onHideWindow() {
+        dismissMoreKeysPanel();
         final MainKeyboardAccessibilityDelegate accessibilityDelegate = mAccessibilityDelegate;
         if (accessibilityDelegate != null) {
             accessibilityDelegate.onHideWindow();