Merge "Enable long press even if the key is disabled"
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardView.java b/java/src/com/android/inputmethod/keyboard/KeyboardView.java
index 1df6444..1e7a061 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardView.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardView.java
@@ -876,6 +876,8 @@
             // Dismiss key preview (in this case, slide language switcher) without any delay.
             mPreviewText.setVisibility(View.INVISIBLE);
         }
+        // Clear key preview display position.
+        mKeyPreviewPopupDisplayedY = -1;
     }
 
     private void addKeyPreview(TextView keyPreview) {
diff --git a/java/src/com/android/inputmethod/keyboard/PointerTracker.java b/java/src/com/android/inputmethod/keyboard/PointerTracker.java
index a489245..6b4e946 100644
--- a/java/src/com/android/inputmethod/keyboard/PointerTracker.java
+++ b/java/src/com/android/inputmethod/keyboard/PointerTracker.java
@@ -633,8 +633,6 @@
 
     private void startLongPressTimer(int keyIndex) {
         Key key = getKey(keyIndex);
-        if (!key.mEnabled)
-            return;
         if (key.mCode == Keyboard.CODE_SHIFT) {
             mHandler.startLongPressShiftTimer(mLongPressShiftKeyTimeout, keyIndex, this);
         } else if (key.mManualTemporaryUpperCaseCode != Keyboard.CODE_DUMMY
diff --git a/java/src/com/android/inputmethod/keyboard/PopupMiniKeyboardView.java b/java/src/com/android/inputmethod/keyboard/PopupMiniKeyboardView.java
index 561dcbc..62a32cf 100644
--- a/java/src/com/android/inputmethod/keyboard/PopupMiniKeyboardView.java
+++ b/java/src/com/android/inputmethod/keyboard/PopupMiniKeyboardView.java
@@ -16,8 +16,6 @@
 
 package com.android.inputmethod.keyboard;
 
-import com.android.inputmethod.latin.R;
-
 import android.content.Context;
 import android.content.res.Resources;
 import android.os.SystemClock;
@@ -27,6 +25,8 @@
 import android.view.View;
 import android.widget.PopupWindow;
 
+import com.android.inputmethod.latin.R;
+
 /**
  * A view that renders a virtual {@link MiniKeyboard}. It handles rendering of keys and detecting
  * key presses and touch movements.
@@ -84,7 +84,7 @@
                 + parentKeyboardView.getPaddingTop() + mCoordinates[1];
         final int x = miniKeyboardX;
         final int y = parentKeyboardView.isKeyPreviewPopupEnabled() &&
-                miniKeyboard.isOneRowKeyboard() ? keyPreviewY : miniKeyboardY;
+                miniKeyboard.isOneRowKeyboard() && keyPreviewY >= 0 ? keyPreviewY : miniKeyboardY;
 
         if (miniKeyboard.setShifted(parentKeyboard.isShiftedOrShiftLocked())) {
             invalidateAllKeys();