diff options
| author | 2022-03-17 14:26:59 +0000 | |
|---|---|---|
| committer | 2022-03-17 14:26:59 +0000 | |
| commit | c48dfe548b81c91435ec5ce7ee3e9ddbaa2f1b2c (patch) | |
| tree | 9285dac483980c8c7a678d48cf03f2cb6808dde4 | |
| parent | 53c2f64d1e2ae417f3cec933e7332750aaf39c5b (diff) | |
| parent | 906689084a2848e724308fd9c5d97d1cdcfa59c0 (diff) | |
Merge "[DO NOT MERGE] ActivityEmbedding: hide embedded TaskFragment between adjacent TFs" into sc-v2-dev
| -rw-r--r-- | services/core/java/com/android/server/wm/TaskFragment.java | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/services/core/java/com/android/server/wm/TaskFragment.java b/services/core/java/com/android/server/wm/TaskFragment.java index 24b66ca3ac9c..ae7e96fab1fe 100644 --- a/services/core/java/com/android/server/wm/TaskFragment.java +++ b/services/core/java/com/android/server/wm/TaskFragment.java @@ -822,11 +822,17 @@ class TaskFragment extends WindowContainer<WindowContainer> { if (!adjacentTaskFragments.isEmpty() && !gotTranslucentAdjacent) { // The z-order of this TaskFragment is in middle of two adjacent TaskFragments // and it cannot be visible if the TaskFragment on top is not translucent and - // is fully occluding this one. + // is occluding this one. + mTmpRect.set(getBounds()); for (int j = adjacentTaskFragments.size() - 1; j >= 0; --j) { final TaskFragment taskFragment = adjacentTaskFragments.get(j); - if (!taskFragment.isTranslucent(starting) - && taskFragment.getBounds().contains(this.getBounds())) { + final TaskFragment adjacentTaskFragment = + taskFragment.mAdjacentTaskFragment; + if (adjacentTaskFragment == this) { + continue; + } + if (mTmpRect.intersect(taskFragment.getBounds()) + || mTmpRect.intersect(adjacentTaskFragment.getBounds())) { return TASK_FRAGMENT_VISIBILITY_INVISIBLE; } } |