OSDN Git Service

Not create context menu when mouse right click outside list/grid items
authorAlan Viverette <alanv@google.com>
Mon, 12 Aug 2013 20:29:15 +0000 (13:29 -0700)
committerAlan Viverette <alanv@google.com>
Mon, 12 Aug 2013 20:29:15 +0000 (13:29 -0700)
Even if mouse right click outside of list/grid items, a context menu
is made. But there is no item of the list, so a context menu info is
null. Then, NullPointerException happens at onCreateContextMenu()
using a context menu info.
For fixing the problem, check mTouchMoude and mMotionPosition to
distingusih where is clicked, on a list item or not, before
performButtonActionOnTouchDown() which makes a context menu.

Manually merged from AOSP contribution.

Change-Id: I778be73df36abbfd4ba9534d8e7a1ece6844ed40
Author: henrik baard <henrik.baard@sonymobile.com>

core/java/android/widget/AbsListView.java

index 0ed846b..07198c7 100644 (file)
@@ -3485,7 +3485,8 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te
             mLastY = Integer.MIN_VALUE;
         }
 
-        if (performButtonActionOnTouchDown(ev) && (mTouchMode == TOUCH_MODE_DOWN)) {
+        if (mTouchMode == TOUCH_MODE_DOWN && mMotionPosition != INVALID_POSITION
+                && performButtonActionOnTouchDown(ev)) {
             removeCallbacks(mPendingCheckForTap);
         }
     }