diff --git a/shell/android/src/com/reicast/emulator/emu/GL2JNIActivity.java b/shell/android/src/com/reicast/emulator/emu/GL2JNIActivity.java index 6be05eeea..b6b0d25b9 100644 --- a/shell/android/src/com/reicast/emulator/emu/GL2JNIActivity.java +++ b/shell/android/src/com/reicast/emulator/emu/GL2JNIActivity.java @@ -564,7 +564,9 @@ public class GL2JNIActivity extends Activity { if (!popUp.isShowing()) { displayPopUp(popUp); } else { - menu.dismissPopUps(); + if (!menu.dismissPopUps()) { + popUp.dismiss(); + } } return true; } diff --git a/shell/android/src/com/reicast/emulator/emu/OnScreenMenu.java b/shell/android/src/com/reicast/emulator/emu/OnScreenMenu.java index 131e98af4..bff96a62c 100644 --- a/shell/android/src/com/reicast/emulator/emu/OnScreenMenu.java +++ b/shell/android/src/com/reicast/emulator/emu/OnScreenMenu.java @@ -98,7 +98,6 @@ public class OnScreenMenu { // layout.addView(hlay,params); popUp.setContentView(hlay); - popups.add(popUp); return popUp; } @@ -296,13 +295,15 @@ public class OnScreenMenu { } } - public void dismissPopUps() { + public boolean dismissPopUps() { for (PopupWindow popup : popups) { if (popup.isShowing()) { popup.dismiss(); popups.remove(popup); + return true; } } + return false; } public static int getPixelsFromDp(float dps, Context context) {