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

Commit 6007d9aa authored by Craig Mautner's avatar Craig Mautner Committed by Gerrit Code Review
Browse files

Merge "Fix racing condition of mTouchExcludeRegion"

parents e06184e4 33d8e739
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -241,6 +241,7 @@ class DisplayContent {
                mTouchExcludeRegion.op(mTmpRect, Region.Op.DIFFERENCE);
            }
        }
        mTapDetector.setTouchExcludeRegion(mTouchExcludeRegion);
    }

    void switchUserStacks(int newUserId) {
+16 −9
Original line number Diff line number Diff line
@@ -31,7 +31,7 @@ public class StackTapPointerEventListener implements PointerEventListener {
    private float mDownX;
    private float mDownY;
    private int mPointerId;
    final private Region mTouchExcludeRegion;
    final private Region mTouchExcludeRegion = new Region();
    private final WindowManagerService mService;
    private final DisplayContent mDisplayContent;

@@ -39,7 +39,6 @@ public class StackTapPointerEventListener implements PointerEventListener {
            DisplayContent displayContent) {
        mService = service;
        mDisplayContent = displayContent;
        mTouchExcludeRegion = displayContent.mTouchExcludeRegion;
        DisplayInfo info = displayContent.getDisplayInfo();
        mMotionSlop = (int)(info.logicalDensityDpi * TAP_MOTION_SLOP_INCHES);
    }
@@ -72,6 +71,7 @@ public class StackTapPointerEventListener implements PointerEventListener {
                if (mPointerId == motionEvent.getPointerId(index)) {
                    final int x = (int)motionEvent.getX(index);
                    final int y = (int)motionEvent.getY(index);
                    synchronized(this) {
                        if ((motionEvent.getEventTime() - motionEvent.getDownTime())
                                < TAP_TIMEOUT_MSEC
                                && Math.abs(x - mDownX) < mMotionSlop
@@ -80,10 +80,17 @@ public class StackTapPointerEventListener implements PointerEventListener {
                            mService.mH.obtainMessage(H.TAP_OUTSIDE_STACK, x, y,
                                    mDisplayContent).sendToTarget();
                        }
                    }
                    mPointerId = -1;
                }
                break;
            }
        }
    }

    void setTouchExcludeRegion(Region newRegion) {
        synchronized (this) {
           mTouchExcludeRegion.set(newRegion);
        }
    }
}