diff options
| author | 2015-04-07 23:32:06 +0000 | |
|---|---|---|
| committer | 2015-04-07 23:32:10 +0000 | |
| commit | 17494017a61330f80aa99f5d0184b73fcfa333fd (patch) | |
| tree | 20de84e6a59c25b349beef5d17ee69d6bef21a3d | |
| parent | 550a901ce13269c700b6a913cfc4d7f1864c483c (diff) | |
| parent | c7ad0a0cb06aa446d0e3777ead0f2e4ba8d5c349 (diff) | |
Merge "Constrain 'touch modal' behavior to the activity stack."
| -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 & |