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

Commit 4c5de716 authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Prevent multiple handle menus from opening." into udc-dev am: 0352f602

parents 134be832 0352f602
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();
        }
    }