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
This commit is contained in:
@@ -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);
|
||||
clipBounds.scale(getScaleX());
|
||||
boolean inBounds = clipBounds.contains(mDownTouchPos.x, mDownTouchPos.y);
|
||||
if (!clipBounds.isEmpty()) {
|
||||
// If we are clipping the view to the bounds, manually do the hit test.
|
||||
clipBounds.scale(getScaleX());
|
||||
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);
|
||||
|
||||
Reference in New Issue
Block a user