Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Skip to content
Commit 1d03b5c4 authored by Kazuki Takise's avatar Kazuki Takise
Browse files

Reset allDrawn when an activity is relaunched

Currently when windowing mode of a task changes,
|ActivityRecord.allDrawn| is not set to false, so the corresponding
app transition starts immediately without waiting for the next
buffer. (For open transitions, opening activities become visible
from invisible, which triggers clearAllDrawn(), but this is not the
case of change transitions). I think there are basically two ideas
to fix this:

1. Call clearALlDrawn() when MSG_RESIZE is posted.
This should work in most cases, but there are a few concerns:
(i) Posting MSG_RESIZE doesn't necessarily mean relayout is called
because the arguments passed with MSG_RESIZE are cached on the
client side and if there's no change, relayout is not triggered.
(ii) There should be other config changes by which apps are redrawn
than resizing.

2. Call clearALlDrawn() when apps are relaunched.
This is what this CL does. This should cover resize cases plus other
config changes. Also when an app is restarted, it's guaranteed (or at
least the framework assumes) that a new surface is created and
relayout is called for it.

Bug: 159294946
Tets: go/wm-smoke
Test: Manually confirmed buffers were synchronized in change
      transitions.
Change-Id: Ibb9eb3ce27f44940a216d6c9ac20d5cdc47dd617
parent 9b4e511d
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment