summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/wm/TaskFragment.java12
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;
}
}