Loading services/core/java/com/android/server/wm/WindowManagerService.java +1 −1 Original line number Original line Diff line number Diff line Loading @@ -2259,7 +2259,7 @@ public class WindowManagerService extends IWindowManager.Stub win.mRelayoutCalled = true; win.mRelayoutCalled = true; win.mInRelayout = true; win.mInRelayout = true; win.mViewVisibility = viewVisibility; win.setViewVisibility(viewVisibility); ProtoLog.i(WM_DEBUG_SCREEN_ON, ProtoLog.i(WM_DEBUG_SCREEN_ON, "Relayout %s: oldVis=%d newVis=%d. %s", win, oldVisibility, "Relayout %s: oldVis=%d newVis=%d. %s", win, oldVisibility, viewVisibility, new RuntimeException().fillInStackTrace()); viewVisibility, new RuntimeException().fillInStackTrace()); Loading services/core/java/com/android/server/wm/WindowState.java +11 −0 Original line number Original line Diff line number Diff line Loading @@ -5689,6 +5689,17 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP return mSession.mPid == pid && isNonToastOrStarting() && isVisibleNow(); return mSession.mPid == pid && isNonToastOrStarting() && isVisibleNow(); } } void setViewVisibility(int viewVisibility) { mViewVisibility = viewVisibility; // The viewVisibility is set to GONE with a client request to relayout. If this occurs and // there's a blast sync transaction waiting, finishDrawing will never be called since the // client will not render when visibility is GONE. Therefore, call finishDrawing here to // prevent system server from blocking on a window that will not draw. if (viewVisibility == View.GONE && mUsingBLASTSyncTransaction) { finishDrawing(null); } } SurfaceControl getClientViewRootSurface() { SurfaceControl getClientViewRootSurface() { return mWinAnimator.getClientViewRootSurface(); return mWinAnimator.getClientViewRootSurface(); } } Loading Loading
services/core/java/com/android/server/wm/WindowManagerService.java +1 −1 Original line number Original line Diff line number Diff line Loading @@ -2259,7 +2259,7 @@ public class WindowManagerService extends IWindowManager.Stub win.mRelayoutCalled = true; win.mRelayoutCalled = true; win.mInRelayout = true; win.mInRelayout = true; win.mViewVisibility = viewVisibility; win.setViewVisibility(viewVisibility); ProtoLog.i(WM_DEBUG_SCREEN_ON, ProtoLog.i(WM_DEBUG_SCREEN_ON, "Relayout %s: oldVis=%d newVis=%d. %s", win, oldVisibility, "Relayout %s: oldVis=%d newVis=%d. %s", win, oldVisibility, viewVisibility, new RuntimeException().fillInStackTrace()); viewVisibility, new RuntimeException().fillInStackTrace()); Loading
services/core/java/com/android/server/wm/WindowState.java +11 −0 Original line number Original line Diff line number Diff line Loading @@ -5689,6 +5689,17 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP return mSession.mPid == pid && isNonToastOrStarting() && isVisibleNow(); return mSession.mPid == pid && isNonToastOrStarting() && isVisibleNow(); } } void setViewVisibility(int viewVisibility) { mViewVisibility = viewVisibility; // The viewVisibility is set to GONE with a client request to relayout. If this occurs and // there's a blast sync transaction waiting, finishDrawing will never be called since the // client will not render when visibility is GONE. Therefore, call finishDrawing here to // prevent system server from blocking on a window that will not draw. if (viewVisibility == View.GONE && mUsingBLASTSyncTransaction) { finishDrawing(null); } } SurfaceControl getClientViewRootSurface() { SurfaceControl getClientViewRootSurface() { return mWinAnimator.getClientViewRootSurface(); return mWinAnimator.getClientViewRootSurface(); } } Loading