Skip to content
Commit 66c1b9ad authored by Evan Rosky's avatar Evan Rosky Committed by [1;3C
Browse files

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
parent 54ae0a7c
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment