Fix two panel home folder opening display issue

Change the rect calculation logic that is used to
display an opening folder. If multiple panels are
displayed then we calculate the union of the pages.

Test: manual
Bug: 181962118
Change-Id: I504f22890115ceebc16d60929149fe634bf820d0
This commit is contained in:
Andras Kloczl
2021-03-29 18:47:14 +02:00
parent 78f5a8c6ab
commit 3a4ba0bec3
2 changed files with 18 additions and 10 deletions

View File

@@ -2000,16 +2000,26 @@ public class Workspace extends PagedView<WorkspacePageIndicator>
}
/**
* Computes the area relative to dragLayer which is used to display a page.
* Computes and returns the area relative to dragLayer which is used to display a page.
* In case we have multiple pages displayed at the same time, we return the union of the areas.
*/
public void getPageAreaRelativeToDragLayer(Rect outArea) {
CellLayout child = (CellLayout) getChildAt(getNextPage());
if (child == null) {
return;
public Rect getPageAreaRelativeToDragLayer() {
Rect area = new Rect();
int nextPage = getNextPage();
int panelCount = getPanelCount();
for (int page = nextPage; page < nextPage + panelCount; page++) {
CellLayout child = (CellLayout) getChildAt(page);
if (child == null) {
break;
}
ShortcutAndWidgetContainer boundingLayout = child.getShortcutsAndWidgets();
Rect tmpRect = new Rect();
mLauncher.getDragLayer().getDescendantRectRelativeToSelf(boundingLayout, tmpRect);
area.union(tmpRect);
}
ShortcutAndWidgetContainer boundingLayout = child.getShortcutsAndWidgets();
mLauncher.getDragLayer().getDescendantRectRelativeToSelf(boundingLayout, outArea);
return area;
}
@Override