Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9022c712 authored by Oren Blasberg's avatar Oren Blasberg
Browse files

Fix top level menu lingering when submenu opens.

We should be calling close(false), not dismiss(), when the submenu is
opened.

This change brings the code closer to what it was before the prior
change to StandardMenuPopup, but preserves the ondismiss behavior we
want for popup menus. The net change so far is that StandardMenuPopup,
not MenuBuilder#performItemAction, handles closing the top level menu
when a submenu is opened. But nonetheless, the onDismiss is not called
when a submenu is opened; only when an actual real "dismiss" occurs.

Bug: 28001958
Change-Id: Ia0f89f8fd4bc5494f6a048c993792adfe42d88ec
parent bcff1431
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -208,7 +208,7 @@ final class StandardMenuPopup extends MenuPopup implements OnDismissListener, On
    @Override
    public void show() {
        if (!tryShow()) {
            throw new IllegalStateException("MenuPopupHelper cannot be used without an anchor");
            throw new IllegalStateException("StandardMenuPopup cannot be used without an anchor");
        }
    }

@@ -273,7 +273,7 @@ final class StandardMenuPopup extends MenuPopup implements OnDismissListener, On
            mOnDismissListener = null;

            // Close this menu popup to make room for the submenu popup.
            dismiss();
            mMenu.close(false /* closeAllMenus */);

            // Show the new sub-menu popup at the same location as this popup.
            if (subPopup.tryShow(mXOffset, mYOffset)) {