Improve support for reparent operations in app transitions
This addresses several issues that come up when reparenting is part of an app-transition (as happens during split-screen). 1. If a windowingMode change is part of a WCTransaction, bundle it up with the other changes before calling a single onConfigurationChange. This is needed for change transitions because they freeze during onConfigurationChange so if the bounds has already changed in a prior onConfigChange, it won't freeze the correct start-bounds. 2. Actually unset task-org if the task is reparented out of an organizable parent (ie. it becomes non-root). Also unset the last OrganizedWindowingMode properly. 3. Because tasks can go into and out-of organized mode, maintain consistent surface positioning through reparent operations by updating the position on reparent if either the before or after state is organized. Why? If we are going from non-organized to organized, the initial position should be relative to the parent where we started organizing -- esp. because there is a delay before the organizer gets the leash, so during that time the surface can pop if not updated. In the other direction, because the task is no-longer organized, WM needs to sync its surface info. Bug: 151881448 Test: tests pass -- android-on-chrome tests pass Change-Id: I16e74ea0cc79a6c76ac08a3cbd55416e034753c0
Loading
Please register or sign in to comment