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

Commit 0352f602 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Prevent multiple handle menus from opening." into udc-dev

parents 7b888dcc 18c329c2
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -312,8 +312,12 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel {
            } else if (id == R.id.back_button) {
                mTaskOperations.injectBackKey();
            } else if (id == R.id.caption_handle || id == R.id.open_menu_button) {
                if (!decoration.isHandleMenuActive()) {
                    moveTaskToFront(mTaskOrganizer.getRunningTaskInfo(mTaskId));
                    decoration.createHandleMenu();
                } else {
                    decoration.closeHandleMenu();
                }
            } else if (id == R.id.desktop_button) {
                mDesktopModeController.ifPresent(c -> c.setDesktopModeActive(true));
                mDesktopTasksController.ifPresent(c -> c.moveToDesktop(mTaskId));
+10 −1
Original line number Diff line number Diff line
@@ -487,6 +487,14 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin
        if (mHandleMenuAppInfoPill.mWindowViewHost.getView().getWidth() == 0) return;

        PointF inputPoint = offsetCaptionLocation(ev);

        // If this is called before open_menu_button's onClick, we don't want to close
        // the menu since it will just reopen in onClick.
        final boolean pointInOpenMenuButton = pointInView(
                mResult.mRootView.findViewById(R.id.open_menu_button),
                inputPoint.x,
                inputPoint.y);

        final boolean pointInAppInfoPill = pointInView(
                mHandleMenuAppInfoPill.mWindowViewHost.getView(),
                inputPoint.x - mHandleMenuAppInfoPillPosition.x - mResult.mDecorContainerOffsetX,
@@ -506,7 +514,8 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin
                        - mResult.mDecorContainerOffsetX,
                inputPoint.y - mHandleMenuMoreActionsPillPosition.y
                        - mResult.mDecorContainerOffsetY);
        if (!pointInAppInfoPill && !pointInWindowingPill && !pointInMoreActionsPill) {
        if (!pointInAppInfoPill && !pointInWindowingPill
                && !pointInMoreActionsPill && !pointInOpenMenuButton) {
            closeHandleMenu();
        }
    }