Apply split-screen resize on sync queue
This keeps it synchronized with dismissal and thus avoids
a race between pending and sync transaction application
Bug: 170801863
Test: launch a forced-multiwindow sizecompat app in split and
then dismiss split to that app. App should not be cropped.
Change-Id: I686605928ededcd5c5d032789fd883e17f437948
Merged-in: I4d89be443af5616174ea44e62774133e3b99597c
This commit is contained in:
@@ -618,7 +618,7 @@ public class DividerView extends FrameLayout implements OnTouchListener,
|
||||
mEntranceAnimationRunning = false;
|
||||
mExitAnimationRunning = false;
|
||||
if (!dismissed && !wasMinimizeInteraction) {
|
||||
WindowManagerProxy.applyResizeSplits(snapTarget.position, mSplitLayout);
|
||||
mWindowManagerProxy.applyResizeSplits(snapTarget.position, mSplitLayout);
|
||||
}
|
||||
if (mCallback != null) {
|
||||
mCallback.onDraggingEnd();
|
||||
@@ -889,7 +889,7 @@ public class DividerView extends FrameLayout implements OnTouchListener,
|
||||
t.hide(sc).apply();
|
||||
mTiles.releaseTransaction(t);
|
||||
int midPos = mSplitLayout.getSnapAlgorithm().getMiddleTarget().position;
|
||||
WindowManagerProxy.applyResizeSplits(midPos, mSplitLayout);
|
||||
mWindowManagerProxy.applyResizeSplits(midPos, mSplitLayout);
|
||||
}
|
||||
|
||||
public void setMinimizedDockStack(boolean minimized, long animDuration,
|
||||
|
||||
@@ -37,7 +37,6 @@ import android.view.WindowManagerGlobal;
|
||||
import android.window.TaskOrganizer;
|
||||
import android.window.WindowContainerToken;
|
||||
import android.window.WindowContainerTransaction;
|
||||
import android.window.WindowOrganizer;
|
||||
|
||||
import com.android.internal.annotations.GuardedBy;
|
||||
import com.android.systemui.TransactionPool;
|
||||
@@ -112,10 +111,10 @@ public class WindowManagerProxy {
|
||||
mExecutor.execute(mSetTouchableRegionRunnable);
|
||||
}
|
||||
|
||||
static void applyResizeSplits(int position, SplitDisplayLayout splitLayout) {
|
||||
void applyResizeSplits(int position, SplitDisplayLayout splitLayout) {
|
||||
WindowContainerTransaction t = new WindowContainerTransaction();
|
||||
splitLayout.resizeSplits(position, t);
|
||||
WindowOrganizer.applyTransaction(t);
|
||||
applySyncTransaction(t);
|
||||
}
|
||||
|
||||
private static boolean getHomeAndRecentsTasks(List<ActivityManager.RunningTaskInfo> out,
|
||||
|
||||
Reference in New Issue
Block a user