diff --git a/java/src/com/android/inputmethod/keyboard/EmojiPalettesView.java b/java/src/com/android/inputmethod/keyboard/EmojiPalettesView.java
index 672759aeebbdb4e707ea272c22e417b368a39af2..b44741cda194079e07844debd0573122e8bc97d2 100644
--- a/java/src/com/android/inputmethod/keyboard/EmojiPalettesView.java
+++ b/java/src/com/android/inputmethod/keyboard/EmojiPalettesView.java
@@ -534,6 +534,7 @@ public final class EmojiPalettesView extends LinearLayout implements OnTabChange
     @Override
     public void onPageScrolled(final int position, final float positionOffset,
             final int positionOffsetPixels) {
+        mEmojiPalettesAdapter.onPageScrolled();
         final Pair<Integer, Integer> newPos =
                 mEmojiCategory.getCategoryIdAndPageIdFromPagePosition(position);
         final int newCategoryId = newPos.first;
@@ -718,6 +719,14 @@ public final class EmojiPalettesView extends LinearLayout implements OnTabChange
             }
         }
 
+        public void onPageScrolled() {
+            // Make sure the delayed key-down event (highlight effect and haptic feedback) will be
+            // canceled.
+            final EmojiPageKeyboardView currentKeyboardView =
+                  mActiveKeyboardViews.get(mActivePosition);
+            currentKeyboardView.releaseCurrentKey();
+        }
+
         @Override
         public int getCount() {
             return mEmojiCategory.getTotalPageCountOfAllCategories();