diff options
| -rw-r--r-- | services/core/java/com/android/server/wm/DragState.java | 8 |
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 & |