summaryrefslogtreecommitdiffstats
path: root/core/java/com
diff options
context:
space:
mode:
Diffstat (limited to 'core/java/com')
-rw-r--r--core/java/com/android/internal/view/menu/MenuPopupHelper.java11
1 files changed, 10 insertions, 1 deletions
diff --git a/core/java/com/android/internal/view/menu/MenuPopupHelper.java b/core/java/com/android/internal/view/menu/MenuPopupHelper.java
index b93fac4..1f93eac 100644
--- a/core/java/com/android/internal/view/menu/MenuPopupHelper.java
+++ b/core/java/com/android/internal/view/menu/MenuPopupHelper.java
@@ -19,6 +19,7 @@ package com.android.internal.view.menu;
import com.android.internal.view.menu.MenuBuilder.MenuAdapter;
import android.content.Context;
+import android.os.Handler;
import android.util.DisplayMetrics;
import android.view.KeyEvent;
import android.view.MenuItem;
@@ -46,6 +47,8 @@ public class MenuPopupHelper implements AdapterView.OnItemClickListener, View.On
private boolean mOverflowOnly;
private ViewTreeObserver mTreeObserver;
+ private final Handler mHandler = new Handler();
+
public MenuPopupHelper(Context context, MenuBuilder menu) {
this(context, menu, null, false);
}
@@ -137,8 +140,14 @@ public class MenuPopupHelper implements AdapterView.OnItemClickListener, View.On
} else {
item = mMenu.getVisibleItems().get(position);
}
- mMenu.performItemAction(item, 0);
dismiss();
+
+ final MenuItem performItem = item;
+ mHandler.post(new Runnable() {
+ public void run() {
+ mMenu.performItemAction(performItem, 0);
+ }
+ });
}
public boolean onKey(View v, int keyCode, KeyEvent event) {