diff --git a/java/src/com/android/inputmethod/latin/InputView.java b/java/src/com/android/inputmethod/latin/InputView.java
index 0801cfa88c99c671fdfd6a46cb16e80cdbee1899..e9e12f09f908e421e01b8596cfc1ce9446bca11e 100644
--- a/java/src/com/android/inputmethod/latin/InputView.java
+++ b/java/src/com/android/inputmethod/latin/InputView.java
@@ -202,7 +202,12 @@ public final class InputView extends LinearLayout {
 
         @Override
         protected boolean needsToForward(final int x, final int y) {
-            return isInKeyboardTopPadding(y);
+            // Forwarding an event only when {@link MainKeyboardView} is visible.
+            // Because the visibility of {@link MainKeyboardView} is controlled by its parent
+            // view in {@link KeyboardSwitcher#setMainKeyboardFrame()}, we should check the
+            // visibility of the parent view.
+            final View mainKeyboardFrame = (View)mSenderView.getParent();
+            return mainKeyboardFrame.getVisibility() == View.VISIBLE && isInKeyboardTopPadding(y);
         }
 
         @Override