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

Commit 23861dc1 authored by Manu Cornet's avatar Manu Cornet
Browse files

Slight generalization of task view hit test logic

The existing logic does not work if task views happen not to be
clipped. This makes the logic a little more generic.

Bug: 32101881
Test: Locally on Ryu device with existing Recents implementation as well as another, in-progress implementation.
Change-Id: I177aa5c2a020741175b2e9c85a48165fa7294b4e
parent 2cf7c483
Loading
Loading
Loading
Loading
+9 −3
Original line number Diff line number Diff line
@@ -668,10 +668,16 @@ public class TaskView extends FixedSizeFrameLayout implements Task.TaskCallbacks
    @Override
    public boolean onLongClick(View v) {
        SystemServicesProxy ssp = Recents.getSystemServices();
        // Since we are clipping the view to the bounds, manually do the hit test
        boolean inBounds = false;
        Rect clipBounds = new Rect(mViewBounds.mClipBounds);
        if (!clipBounds.isEmpty()) {
            // If we are clipping the view to the bounds, manually do the hit test.
            clipBounds.scale(getScaleX());
        boolean inBounds = clipBounds.contains(mDownTouchPos.x, mDownTouchPos.y);
            inBounds = clipBounds.contains(mDownTouchPos.x, mDownTouchPos.y);
        } else {
            // Otherwise just make sure we're within the view's bounds.
            inBounds = mDownTouchPos.x <= getWidth() && mDownTouchPos.y <= getHeight();
        }
        if (v == this && inBounds && !ssp.hasDockedTask()) {
            // Start listening for drag events
            setClipViewInStack(false);