Merge "Call layoutAndAssignWindowLayersIfNeeded while holding mGlobalLock"

This commit is contained in:
TreeHugger Robot
2019-12-18 14:58:45 +00:00
committed by Android (Google) Code Review
2 changed files with 12 additions and 3 deletions

View File

@@ -24,6 +24,8 @@ import static android.view.ViewRootImpl.NEW_INSETS_MODE_IME;
import static android.view.ViewRootImpl.NEW_INSETS_MODE_NONE;
import static android.view.ViewRootImpl.sNewInsetsMode;
import static com.android.server.wm.WindowManagerService.H.LAYOUT_AND_ASSIGN_WINDOW_LAYERS_IF_NEEDED;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.graphics.Point;
@@ -36,7 +38,6 @@ import android.view.SurfaceControl;
import android.view.SurfaceControl.Transaction;
import com.android.internal.util.function.TriConsumer;
import com.android.internal.util.function.pooled.PooledLambda;
import com.android.server.wm.SurfaceAnimator.OnAnimationFinishedCallback;
import java.io.PrintWriter;
@@ -222,8 +223,8 @@ class InsetsSourceProvider {
return;
}
mClientVisible = clientVisible;
mDisplayContent.mWmService.mH.sendMessage(PooledLambda.obtainMessage(
DisplayContent::layoutAndAssignWindowLayersIfNeeded, mDisplayContent));
mDisplayContent.mWmService.mH.obtainMessage(
LAYOUT_AND_ASSIGN_WINDOW_LAYERS_IF_NEEDED, mDisplayContent).sendToTarget();
updateVisibility();
}

View File

@@ -4511,6 +4511,7 @@ public class WindowManagerService extends IWindowManager.Stub
public static final int ANIMATION_FAILSAFE = 60;
public static final int RECOMPUTE_FOCUS = 61;
public static final int ON_POINTER_DOWN_OUTSIDE_FOCUS = 62;
public static final int LAYOUT_AND_ASSIGN_WINDOW_LAYERS_IF_NEEDED = 63;
/**
* Used to denote that an integer field in a message will not be used.
@@ -4885,6 +4886,13 @@ public class WindowManagerService extends IWindowManager.Stub
}
break;
}
case LAYOUT_AND_ASSIGN_WINDOW_LAYERS_IF_NEEDED: {
synchronized (mGlobalLock) {
final DisplayContent displayContent = (DisplayContent) msg.obj;
displayContent.layoutAndAssignWindowLayersIfNeeded();
}
break;
}
}
if (DEBUG_WINDOW_TRACE) {
Slog.v(TAG_WM, "handleMessage: exit");