Allow stacks to be placed outside of display
When dismissing the docked stack, we animate the divider to position -12dp, so the full-screen stack is exactly full-screen when the dismiss animation is done. Previously, this was prevented by window manager. Allow it to fix the animation. Change-Id: Iee4505023dc3f6907d56851965b156235f9f97f2
This commit is contained in:
@@ -317,6 +317,18 @@ public class DividerView extends FrameLayout implements OnTouchListener,
|
||||
outRect.top = position + mDividerWindowWidth - 2 * mDividerInsets;
|
||||
break;
|
||||
}
|
||||
if (outRect.left > outRect.right) {
|
||||
outRect.left = outRect.right;
|
||||
}
|
||||
if (outRect.top > outRect.bottom) {
|
||||
outRect.top = outRect.bottom;
|
||||
}
|
||||
if (outRect.right < outRect.left) {
|
||||
outRect.right = outRect.left;
|
||||
}
|
||||
if (outRect.bottom < outRect.top) {
|
||||
outRect.bottom = outRect.top;
|
||||
}
|
||||
}
|
||||
|
||||
public void resizeStack(int position) {
|
||||
|
||||
@@ -190,14 +190,6 @@ class Task implements DimLayer.DimLayerUser {
|
||||
bounds = mTmpRect;
|
||||
mFullscreen = true;
|
||||
} else {
|
||||
if ((mStack.mStackId != FREEFORM_WORKSPACE_STACK_ID
|
||||
&& mStack.mStackId != PINNED_STACK_ID) || bounds.isEmpty()) {
|
||||
// ensure bounds are entirely within the display rect
|
||||
if (!bounds.intersect(mTmpRect)) {
|
||||
// Can't set bounds outside the containing display...Sorry!
|
||||
return BOUNDS_CHANGE_NONE;
|
||||
}
|
||||
}
|
||||
mFullscreen = mTmpRect.equals(bounds);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -143,11 +143,6 @@ public class TaskStack implements DimLayer.DimLayerUser {
|
||||
bounds = mTmpRect;
|
||||
mFullscreen = true;
|
||||
} else {
|
||||
// ensure bounds are entirely within the display rect
|
||||
if (!bounds.intersect(mTmpRect)) {
|
||||
// Can't set bounds outside the containing display.. Sorry!
|
||||
return false;
|
||||
}
|
||||
mFullscreen = mTmpRect.equals(bounds);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user