summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/wm/DragState.java8
1 files changed, 8 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/wm/DragState.java b/services/core/java/com/android/server/wm/DragState.java
index c6951bd4f9f6..1a125d4bfae2 100644
--- a/services/core/java/com/android/server/wm/DragState.java
+++ b/services/core/java/com/android/server/wm/DragState.java
@@ -24,6 +24,7 @@ import com.android.server.wm.WindowManagerService.H;
import android.content.ClipData;
import android.content.ClipDescription;
import android.graphics.Point;
+import android.graphics.Rect;
import android.graphics.Region;
import android.os.IBinder;
import android.os.Message;
@@ -63,6 +64,7 @@ class DragState {
Display mDisplay;
private final Region mTmpRegion = new Region();
+ private final Rect mTmpRect = new Rect();
DragState(WindowManagerService service, IBinder token, SurfaceControl surface,
int flags, IBinder localWin) {
@@ -411,6 +413,12 @@ class DragState {
continue;
}
+ child.getStackBounds(mTmpRect);
+ if (!mTmpRect.contains(x, y)) {
+ // outside of this window's activity stack == don't tell about drags
+ continue;
+ }
+
child.getTouchableRegion(mTmpRegion);
final int touchFlags = flags &