diff options
| author | 2021-02-05 00:00:10 +0000 | |
|---|---|---|
| committer | 2021-02-05 00:00:10 +0000 | |
| commit | a7165e25af6be6b2f8bb5fda2fd30fe4e5f5cc2d (patch) | |
| tree | 4f618485fd34cb9c78e756e3c63f01a5f72c4885 | |
| parent | 8277f849114b22ed50b0cf7e22dbd05808563e8d (diff) | |
| parent | bed4a065b7269696b2dda969db78ac54a2477b58 (diff) | |
Merge "Don't override child task bounds when rotation changed" into sc-dev
| -rw-r--r-- | services/core/java/com/android/server/wm/Task.java | 21 | ||||
| -rw-r--r-- | services/core/java/com/android/server/wm/WindowOrganizerController.java | 17 |
2 files changed, 3 insertions, 35 deletions
diff --git a/services/core/java/com/android/server/wm/Task.java b/services/core/java/com/android/server/wm/Task.java index 57ba915d4651..30af0eda17fc 100644 --- a/services/core/java/com/android/server/wm/Task.java +++ b/services/core/java/com/android/server/wm/Task.java @@ -2319,12 +2319,9 @@ class Task extends WindowContainer<WindowContainer> { return; } - final boolean windowingModeChanged = prevWindowingMode != getWindowingMode(); - final int overrideWindowingMode = getRequestedOverrideWindowingMode(); - // Update bounds if applicable - boolean hasNewOverrideBounds = false; // Use override windowing mode to prevent extra bounds changes if inheriting the mode. - if ((overrideWindowingMode != WINDOWING_MODE_PINNED) + final int overrideWindowingMode = getRequestedOverrideWindowingMode(); + if (overrideWindowingMode != WINDOWING_MODE_PINNED && !getRequestedOverrideBounds().isEmpty()) { // If the parent (display) has rotated, rotate our bounds to best-fit where their // bounds were on the pre-rotated display. @@ -2334,22 +2331,10 @@ class Task extends WindowContainer<WindowContainer> { mDisplayContent.rotateBounds( newParentConfig.windowConfiguration.getBounds(), prevRotation, newRotation, newBounds); - hasNewOverrideBounds = true; - } - } - - if (windowingModeChanged) { - taskDisplayArea.onRootTaskWindowingModeChanged(this); - } - if (hasNewOverrideBounds) { - if (inSplitScreenWindowingMode()) { setBounds(newBounds); - } else if (overrideWindowingMode != WINDOWING_MODE_PINNED) { - // For root pinned task, resize is now part of the {@link - // WindowContainerTransaction} - resize(new Rect(newBounds), PRESERVE_WINDOWS, true /* deferResume */); } } + if (prevIsAlwaysOnTop != isAlwaysOnTop()) { // Since always on top is only on when the root task is freeform or pinned, the state // can be toggled when the windowing mode changes. We must make sure the root task is diff --git a/services/core/java/com/android/server/wm/WindowOrganizerController.java b/services/core/java/com/android/server/wm/WindowOrganizerController.java index bd7116a7e2aa..63a083261614 100644 --- a/services/core/java/com/android/server/wm/WindowOrganizerController.java +++ b/services/core/java/com/android/server/wm/WindowOrganizerController.java @@ -416,11 +416,7 @@ class WindowOrganizerController extends IWindowOrganizerController.Stub new Configuration(container.getRequestedOverrideConfiguration()); c.setTo(change.getConfiguration(), configMask, windowMask); container.onRequestedOverrideConfigurationChanged(c); - // TODO(b/145675353): remove the following once we could apply new bounds to the - // root pinned task together with its children. } - resizeRootPinnedTaskIfNeeded(container, configMask, windowMask, - container.getRequestedOverrideConfiguration()); effects |= TRANSACT_EFFECTS_CLIENT_CONFIG; } if ((change.getChangeMask() & WindowContainerTransaction.Change.CHANGE_FOCUSABLE) != 0) { @@ -670,19 +666,6 @@ class WindowOrganizerController extends IWindowOrganizerController.Stub return effects; } - private void resizeRootPinnedTaskIfNeeded(ConfigurationContainer container, int configMask, - int windowMask, Configuration config) { - if ((container instanceof Task) - && ((configMask & ActivityInfo.CONFIG_WINDOW_CONFIGURATION) != 0) - && ((windowMask & WindowConfiguration.WINDOW_CONFIG_BOUNDS) != 0)) { - final Task rootTask = (Task) container; - if (rootTask.inPinnedWindowingMode()) { - rootTask.resize(config.windowConfiguration.getBounds(), - PRESERVE_WINDOWS, true /* deferResume */); - } - } - } - @Override public ITaskOrganizerController getTaskOrganizerController() { enforceTaskPermission("getTaskOrganizerController()"); |