diff options
| author | Evan Rosky <erosky@google.com> | 2022-05-17 17:37:55 -0700 |
|---|---|---|
| committer | Evan Rosky <erosky@google.com> | 2022-05-17 17:37:55 -0700 |
| commit | 579eb8936257bca0a231c7f82bb8f6d408f76492 (patch) | |
| tree | 860d21af0e52955be633cfa98109bdb1709d7fd9 /core/java/android/inputmethodservice/AbstractInputMethodService.java | |
| parent | 97b292f62708afd88f63209b41850f762f3a2b40 (diff) | |
Detect Remove-pip transaction to properly close multi-activity pips
Multi-activity pip converts setWindowingMode(UNDEFINED) into a
"reparent pip activity + move-to-front" when expanding pip. Shell
doesn't know whether a pip is multi-activity or not, so it just
makes a WCT with setWindowingMode(UNDEFINED) AND reorder-to-back.
The problem is that setWindowingMode happens first which triggers
the "merge + move-to-front" logic -- the reorder command was
for the unmerged task so it just gets ignored.
This CL basically checks if the WCT also has a move-to-back in
addition to setMode(UNDEFINED) and, if so, uses the "workaround"
found in removePinnedRootTaskInSurfaceTransaction to prevent
setWindowingMode(UNDEFINED) from doing the wrong thing: it sets
FORCE_HIDDEN_FOR_PINNED_TASK.
Bug: 232954259
Test: open multi-activity pip (eg. ApiDemos). Go to pip. close it
via the X button.
Change-Id: Iaafbc1c930eb1bcfb427533ae28ef9a823d6b9c6
Diffstat (limited to 'core/java/android/inputmethodservice/AbstractInputMethodService.java')
0 files changed, 0 insertions, 0 deletions
