Merge "Correct errant entry in to DRAG_RESIZE_FREEFORM state." into oc-dev

am: 03e61aa9bb

Change-Id: I6c53bff8ecc906658a3f8e81acfb6cb2e241121a
This commit is contained in:
Rob Carr
2017-06-15 01:25:26 +00:00
committed by android-build-merger

View File

@@ -891,8 +891,24 @@ class AppWindowToken extends WindowToken implements WindowManagerService.AppFree
return mPendingRelaunchCount > 0;
}
boolean shouldFreezeBounds() {
final Task task = getTask();
// For freeform windows, we can't freeze the bounds at the moment because this would make
// the resizing unresponsive.
if (task == null || task.inFreeformWorkspace()) {
return false;
}
// We freeze the bounds while drag resizing to deal with the time between
// the divider/drag handle being released, and the handling it's new
// configuration. If we are relaunched outside of the drag resizing state,
// we need to be careful not to do this.
return getTask().isDragResizing();
}
void startRelaunching() {
if (canFreezeBounds()) {
if (shouldFreezeBounds()) {
freezeBounds();
}
@@ -909,9 +925,8 @@ class AppWindowToken extends WindowToken implements WindowManagerService.AppFree
}
void finishRelaunching() {
if (canFreezeBounds()) {
unfreezeBounds();
}
unfreezeBounds();
if (mPendingRelaunchCount > 0) {
mPendingRelaunchCount--;
} else {
@@ -926,9 +941,7 @@ class AppWindowToken extends WindowToken implements WindowManagerService.AppFree
if (mPendingRelaunchCount == 0) {
return;
}
if (canFreezeBounds()) {
unfreezeBounds();
}
unfreezeBounds();
mPendingRelaunchCount = 0;
}
@@ -1032,14 +1045,6 @@ class AppWindowToken extends WindowToken implements WindowManagerService.AppFree
}
}
private boolean canFreezeBounds() {
final Task task = getTask();
// For freeform windows, we can't freeze the bounds at the moment because this would make
// the resizing unresponsive.
return task != null && !task.inFreeformWorkspace();
}
/**
* Freezes the task bounds. The size of this task reported the app will be fixed to the bounds
* freezed by {@link Task#prepareFreezingBounds} until {@link #unfreezeBounds} gets called, even
@@ -1064,9 +1069,10 @@ class AppWindowToken extends WindowToken implements WindowManagerService.AppFree
* Unfreezes the previously frozen bounds. See {@link #freezeBounds}.
*/
private void unfreezeBounds() {
if (!mFrozenBounds.isEmpty()) {
mFrozenBounds.remove();
if (mFrozenBounds.isEmpty()) {
return;
}
mFrozenBounds.remove();
if (!mFrozenMergedConfig.isEmpty()) {
mFrozenMergedConfig.remove();
}