diff --git a/services/core/java/com/android/server/wm/WindowOrganizerController.java b/services/core/java/com/android/server/wm/WindowOrganizerController.java index c4cb4b5091d82..707a7898f8b6c 100644 --- a/services/core/java/com/android/server/wm/WindowOrganizerController.java +++ b/services/core/java/com/android/server/wm/WindowOrganizerController.java @@ -138,6 +138,13 @@ class WindowOrganizerController extends IWindowOrganizerController.Stub Slog.e(TAG, "Attempt to operate on detached container: " + wc); continue; } + // Make sure we add to the syncSet before performing + // operations so we don't end up splitting effects between the WM + // pending transaction and the BLASTSync transaction. + if (syncId >= 0) { + mBLASTSyncEngine.addToSyncSet(syncId, wc); + } + int containerEffect = applyWindowContainerChange(wc, entry.getValue()); effects |= containerEffect; @@ -146,9 +153,6 @@ class WindowOrganizerController extends IWindowOrganizerController.Stub && (containerEffect & TRANSACT_EFFECTS_CLIENT_CONFIG) != 0) { haveConfigChanges.add(wc); } - if (syncId >= 0) { - mBLASTSyncEngine.addToSyncSet(syncId, wc); - } } // Hierarchy changes final List hops = t.getHierarchyOps();