diff options
author | Winson Chung <winsonc@google.com> | 2013-10-08 17:00:19 -0700 |
---|---|---|
committer | Winson Chung <winsonc@google.com> | 2013-10-08 17:00:19 -0700 |
commit | 69737c3e49ff3edc42899609fdbc96e356f8638e (patch) | |
tree | 21c79dde9cfb0ea7e1793e243a7c8d50efb61426 /src/com/android/launcher3 | |
parent | 82a9bd2c03645494cb0965abc03a9a18823e07e5 (diff) | |
download | android_packages_apps_Trebuchet-69737c3e49ff3edc42899609fdbc96e356f8638e.tar.gz android_packages_apps_Trebuchet-69737c3e49ff3edc42899609fdbc96e356f8638e.tar.bz2 android_packages_apps_Trebuchet-69737c3e49ff3edc42899609fdbc96e356f8638e.zip |
Ensuring that we offset cell items by their destination cell padding. (Bug 10881814)
Change-Id: Idc16ae64b1a0e7f79b8a3ff5da6854fbab7867d2
Diffstat (limited to 'src/com/android/launcher3')
-rw-r--r-- | src/com/android/launcher3/CellLayout.java | 16 | ||||
-rw-r--r-- | src/com/android/launcher3/ShortcutAndWidgetContainer.java | 9 |
2 files changed, 11 insertions, 14 deletions
diff --git a/src/com/android/launcher3/CellLayout.java b/src/com/android/launcher3/CellLayout.java index 5c6a694c0..b17f5b439 100644 --- a/src/com/android/launcher3/CellLayout.java +++ b/src/com/android/launcher3/CellLayout.java @@ -115,7 +115,6 @@ public class CellLayout extends ViewGroup { // If we're actively dragging something over this screen, mIsDragOverlapping is true private boolean mIsDragOverlapping = false; - private final Point mDragCenter = new Point(); boolean mUseActiveGlowBackground = false; // These arrays are used to implement the drag visualization on x-large screens. @@ -1204,12 +1203,6 @@ public class CellLayout extends ViewGroup { final int oldDragCellX = mDragCell[0]; final int oldDragCellY = mDragCell[1]; - if (v != null && dragOffset == null) { - mDragCenter.set(originX + (v.getWidth() / 2), originY + (v.getHeight() / 2)); - } else { - mDragCenter.set(originX, originY); - } - if (dragOutline == null && v == null) { return; } @@ -1224,11 +1217,6 @@ public class CellLayout extends ViewGroup { int left = topLeft[0]; int top = topLeft[1]; - // Offset icons by their padding - if (v instanceof BubbleTextView) { - top += v.getPaddingTop(); - } - if (v != null && dragOffset == null) { // When drawing the drag outline, it did not account for margin offsets // added by the view's parent. @@ -1249,7 +1237,9 @@ public class CellLayout extends ViewGroup { // outline offset left += dragOffset.x + ((mCellWidth * spanX) + ((spanX - 1) * mWidthGap) - dragRegion.width()) / 2; - top += dragOffset.y; + int cHeight = getShortcutsAndWidgets().getCellContentHeight(); + int cellPaddingY = (int) Math.max(0, ((mCellHeight - cHeight) / 2f)); + top += dragOffset.y + cellPaddingY; } else { // Center the drag outline in the cell left += ((mCellWidth * spanX) + ((spanX - 1) * mWidthGap) diff --git a/src/com/android/launcher3/ShortcutAndWidgetContainer.java b/src/com/android/launcher3/ShortcutAndWidgetContainer.java index fcd6f19ae..1cf4c11b6 100644 --- a/src/com/android/launcher3/ShortcutAndWidgetContainer.java +++ b/src/com/android/launcher3/ShortcutAndWidgetContainer.java @@ -123,6 +123,13 @@ public class ShortcutAndWidgetContainer extends ViewGroup { mIsHotseatLayout = isHotseat; } + int getCellContentHeight() { + final LauncherAppState app = LauncherAppState.getInstance(); + final DeviceProfile grid = app.getDynamicGrid().getDeviceProfile(); + return Math.min(getMeasuredHeight(), mIsHotseatLayout ? + grid.hotseatCellHeightPx : grid.cellHeightPx); + } + public void measureChild(View child) { final LauncherAppState app = LauncherAppState.getInstance(); final DeviceProfile grid = app.getDynamicGrid().getDeviceProfile(); @@ -137,7 +144,7 @@ public class ShortcutAndWidgetContainer extends ViewGroup { // Widgets have their own padding, so skip } else { // Otherwise, center the icon - int cHeight = mIsHotseatLayout ? grid.hotseatCellHeightPx : Math.min(getMeasuredHeight(), grid.cellHeightPx); + int cHeight = getCellContentHeight(); int cellPaddingY = (int) Math.max(0, ((lp.height - cHeight) / 2f)); int cellPaddingX = (int) (grid.edgeMarginPx / 2f); child.setPadding(cellPaddingX, cellPaddingY, cellPaddingX, 0); |