diff options
| author | 2024-07-10 12:11:12 +0000 | |
|---|---|---|
| committer | 2024-07-10 12:11:12 +0000 | |
| commit | f4cc6accc6a26645eb92f16f07cc74d7c190b4b0 (patch) | |
| tree | e997e106e5293c3e652f26f1277b1e07022bc407 | |
| parent | c07948e5c308838bc4b9128ec9d26d80ed9d01fe (diff) | |
| parent | 929da90dc0b15c796be3e889758804cb6aaf5173 (diff) | |
Merge changes I3f413f7f,Ie5fade7e into main
* changes:
Fix hover icon when drag resizing a freeform window with a stylus.
Clean up edge resizing debug logging.
3 files changed, 19 insertions, 59 deletions
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DragResizeInputListener.java b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DragResizeInputListener.java index a3616f65f3b2..32df8b3b2c7c 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DragResizeInputListener.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DragResizeInputListener.java @@ -468,8 +468,7 @@ class DragResizeInputListener implements AutoCloseable { case MotionEvent.ACTION_HOVER_ENTER: case MotionEvent.ACTION_HOVER_MOVE: { updateCursorType(e.getDisplayId(), e.getDeviceId(), - e.getPointerId(/*pointerIndex=*/0), e.getXCursorPosition(), - e.getYCursorPosition()); + e.getPointerId(/*pointerIndex=*/0), e.getX(), e.getY()); result = true; break; } diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DragResizeWindowGeometry.java b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DragResizeWindowGeometry.java index b5d1d4a76342..ba5f0791a010 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DragResizeWindowGeometry.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DragResizeWindowGeometry.java @@ -33,9 +33,6 @@ import android.graphics.Region; import android.util.Size; import android.view.MotionEvent; -import androidx.annotation.Nullable; -import androidx.annotation.VisibleForTesting; - import com.android.wm.shell.R; import java.util.Objects; @@ -44,11 +41,6 @@ import java.util.Objects; * Geometry for a drag resize region for a particular window. */ final class DragResizeWindowGeometry { - // TODO(b/337264971) clean up when no longer needed - @VisibleForTesting static final boolean DEBUG = true; - // The additional width to apply to edge resize bounds just for logging when a touch is - // close. - @VisibleForTesting static final int EDGE_DEBUG_BUFFER = 15; private final int mTaskCornerRadius; private final Size mTaskSize; // The size of the handle applied to the edges of the window, for the user to drag resize. @@ -60,8 +52,6 @@ final class DragResizeWindowGeometry { private final @NonNull TaskCorners mFineTaskCorners; // The bounds for each edge drag region, which can resize the task in one direction. private final @NonNull TaskEdges mTaskEdges; - // Extra-large edge bounds for logging to help debug when an edge resize is ignored. - private final @Nullable TaskEdges mDebugTaskEdges; DragResizeWindowGeometry(int taskCornerRadius, @NonNull Size taskSize, int resizeHandleThickness, int fineCornerSize, int largeCornerSize) { @@ -74,11 +64,6 @@ final class DragResizeWindowGeometry { // Save touch areas for each edge. mTaskEdges = new TaskEdges(mTaskSize, mResizeHandleThickness); - if (DEBUG) { - mDebugTaskEdges = new TaskEdges(mTaskSize, mResizeHandleThickness + EDGE_DEBUG_BUFFER); - } else { - mDebugTaskEdges = null; - } } /** @@ -120,13 +105,7 @@ final class DragResizeWindowGeometry { */ void union(@NonNull Region region) { // Apply the edge resize regions. - if (inDebugMode()) { - // Use the larger edge sizes if we are debugging, to be able to log if we ignored a - // touch due to the size of the edge region. - mDebugTaskEdges.union(region); - } else { - mTaskEdges.union(region); - } + mTaskEdges.union(region); if (enableWindowingEdgeDragResize()) { // Apply the corners as well for the larger corners, to ensure we capture all possible @@ -219,10 +198,6 @@ final class DragResizeWindowGeometry { @DragPositioningCallback.CtrlType private int calculateEdgeResizeCtrlType(float x, float y) { - if (inDebugMode() && (mDebugTaskEdges.contains((int) x, (int) y) - && !mTaskEdges.contains((int) x, (int) y))) { - return CTRL_TYPE_UNDEFINED; - } int ctrlType = CTRL_TYPE_UNDEFINED; // mTaskCornerRadius is only used in comparing with corner regions. Comparisons with // sides will use the bounds specified in setGeometry and not go into task bounds. @@ -313,9 +288,7 @@ final class DragResizeWindowGeometry { && this.mResizeHandleThickness == other.mResizeHandleThickness && this.mFineTaskCorners.equals(other.mFineTaskCorners) && this.mLargeTaskCorners.equals(other.mLargeTaskCorners) - && (inDebugMode() - ? this.mDebugTaskEdges.equals(other.mDebugTaskEdges) - : this.mTaskEdges.equals(other.mTaskEdges)); + && this.mTaskEdges.equals(other.mTaskEdges); } @Override @@ -326,11 +299,7 @@ final class DragResizeWindowGeometry { mResizeHandleThickness, mFineTaskCorners, mLargeTaskCorners, - (inDebugMode() ? mDebugTaskEdges : mTaskEdges)); - } - - private boolean inDebugMode() { - return DEBUG && mDebugTaskEdges != null; + mTaskEdges); } /** diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/DragResizeWindowGeometryTests.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/DragResizeWindowGeometryTests.java index 4dea5a75a0e8..6a94cd8aa283 100644 --- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/DragResizeWindowGeometryTests.java +++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/DragResizeWindowGeometryTests.java @@ -55,8 +55,6 @@ public class DragResizeWindowGeometryTests { private static final Size TASK_SIZE = new Size(500, 1000); private static final int TASK_CORNER_RADIUS = 10; private static final int EDGE_RESIZE_THICKNESS = 15; - private static final int EDGE_RESIZE_DEBUG_THICKNESS = EDGE_RESIZE_THICKNESS - + (DragResizeWindowGeometry.DEBUG ? DragResizeWindowGeometry.EDGE_DEBUG_BUFFER : 0); private static final int FINE_CORNER_SIZE = EDGE_RESIZE_THICKNESS * 2 + 10; private static final int LARGE_CORNER_SIZE = FINE_CORNER_SIZE + 10; private static final DragResizeWindowGeometry GEOMETRY = new DragResizeWindowGeometry( @@ -91,14 +89,13 @@ public class DragResizeWindowGeometryTests { EDGE_RESIZE_THICKNESS + 10, FINE_CORNER_SIZE, LARGE_CORNER_SIZE), new DragResizeWindowGeometry(TASK_CORNER_RADIUS, TASK_SIZE, EDGE_RESIZE_THICKNESS + 10, FINE_CORNER_SIZE, LARGE_CORNER_SIZE)) - .addEqualityGroup(new DragResizeWindowGeometry(TASK_CORNER_RADIUS, TASK_SIZE, - EDGE_RESIZE_THICKNESS, FINE_CORNER_SIZE, LARGE_CORNER_SIZE + 5), + .addEqualityGroup( new DragResizeWindowGeometry(TASK_CORNER_RADIUS, TASK_SIZE, - EDGE_RESIZE_THICKNESS, FINE_CORNER_SIZE, LARGE_CORNER_SIZE + 5)) - .addEqualityGroup(new DragResizeWindowGeometry(TASK_CORNER_RADIUS, TASK_SIZE, - EDGE_RESIZE_THICKNESS, FINE_CORNER_SIZE + 4, LARGE_CORNER_SIZE), + EDGE_RESIZE_THICKNESS + 10, FINE_CORNER_SIZE, + LARGE_CORNER_SIZE + 5), new DragResizeWindowGeometry(TASK_CORNER_RADIUS, TASK_SIZE, - EDGE_RESIZE_THICKNESS, FINE_CORNER_SIZE + 4, LARGE_CORNER_SIZE)) + EDGE_RESIZE_THICKNESS + 10, FINE_CORNER_SIZE, + LARGE_CORNER_SIZE + 5)) .testEquals(); } @@ -124,21 +121,21 @@ public class DragResizeWindowGeometryTests { private static void verifyHorizontalEdge(@NonNull Region region, @NonNull Point point) { assertThat(region.contains(point.x, point.y)).isTrue(); // Horizontally along the edge is still contained. - assertThat(region.contains(point.x + EDGE_RESIZE_DEBUG_THICKNESS, point.y)).isTrue(); - assertThat(region.contains(point.x - EDGE_RESIZE_DEBUG_THICKNESS, point.y)).isTrue(); + assertThat(region.contains(point.x + EDGE_RESIZE_THICKNESS, point.y)).isTrue(); + assertThat(region.contains(point.x - EDGE_RESIZE_THICKNESS, point.y)).isTrue(); // Vertically along the edge is not contained. - assertThat(region.contains(point.x, point.y - EDGE_RESIZE_DEBUG_THICKNESS)).isFalse(); - assertThat(region.contains(point.x, point.y + EDGE_RESIZE_DEBUG_THICKNESS)).isFalse(); + assertThat(region.contains(point.x, point.y - EDGE_RESIZE_THICKNESS)).isFalse(); + assertThat(region.contains(point.x, point.y + EDGE_RESIZE_THICKNESS)).isFalse(); } private static void verifyVerticalEdge(@NonNull Region region, @NonNull Point point) { assertThat(region.contains(point.x, point.y)).isTrue(); // Horizontally along the edge is not contained. - assertThat(region.contains(point.x + EDGE_RESIZE_DEBUG_THICKNESS, point.y)).isFalse(); - assertThat(region.contains(point.x - EDGE_RESIZE_DEBUG_THICKNESS, point.y)).isFalse(); + assertThat(region.contains(point.x + EDGE_RESIZE_THICKNESS, point.y)).isFalse(); + assertThat(region.contains(point.x - EDGE_RESIZE_THICKNESS, point.y)).isFalse(); // Vertically along the edge is contained. - assertThat(region.contains(point.x, point.y - EDGE_RESIZE_DEBUG_THICKNESS)).isTrue(); - assertThat(region.contains(point.x, point.y + EDGE_RESIZE_DEBUG_THICKNESS)).isTrue(); + assertThat(region.contains(point.x, point.y - EDGE_RESIZE_THICKNESS)).isTrue(); + assertThat(region.contains(point.x, point.y + EDGE_RESIZE_THICKNESS)).isTrue(); } /** @@ -151,10 +148,7 @@ public class DragResizeWindowGeometryTests { public void testRegionUnion_edgeDragResizeEnabled_containsLargeCorners() { Region region = new Region(); GEOMETRY.union(region); - // Make sure we're choosing a point outside of any debug region buffer. - final int cornerRadius = DragResizeWindowGeometry.DEBUG - ? Math.max(LARGE_CORNER_SIZE / 2, EDGE_RESIZE_DEBUG_THICKNESS) - : LARGE_CORNER_SIZE / 2; + final int cornerRadius = LARGE_CORNER_SIZE / 2; new TestPoints(TASK_SIZE, cornerRadius).validateRegion(region); } @@ -168,9 +162,7 @@ public class DragResizeWindowGeometryTests { public void testRegionUnion_edgeDragResizeDisabled_containsFineCorners() { Region region = new Region(); GEOMETRY.union(region); - final int cornerRadius = DragResizeWindowGeometry.DEBUG - ? Math.max(LARGE_CORNER_SIZE / 2, EDGE_RESIZE_DEBUG_THICKNESS) - : LARGE_CORNER_SIZE / 2; + final int cornerRadius = FINE_CORNER_SIZE / 2; new TestPoints(TASK_SIZE, cornerRadius).validateRegion(region); } |