Fix centering in FrameLayout when margins are specified.
Change-Id: I022f458c73967eacc9487bf8d8119999395efda9
diff --git a/core/java/android/widget/FrameLayout.java b/core/java/android/widget/FrameLayout.java
index 65a4673..e27bb4fe 100644
--- a/core/java/android/widget/FrameLayout.java
+++ b/core/java/android/widget/FrameLayout.java
@@ -304,8 +304,8 @@
childLeft = parentLeft + lp.leftMargin;
break;
case Gravity.CENTER_HORIZONTAL:
- childLeft = parentLeft + (parentRight - parentLeft + lp.leftMargin +
- lp.rightMargin - width) / 2;
+ childLeft = parentLeft + (parentRight - parentLeft - width) / 2 +
+ lp.leftMargin - lp.rightMargin;
break;
case Gravity.RIGHT:
childLeft = parentRight - width - lp.rightMargin;
@@ -319,8 +319,8 @@
childTop = parentTop + lp.topMargin;
break;
case Gravity.CENTER_VERTICAL:
- childTop = parentTop + (parentBottom - parentTop + lp.topMargin +
- lp.bottomMargin - height) / 2;
+ childTop = parentTop + (parentBottom - parentTop - height) / 2 +
+ lp.topMargin - lp.bottomMargin;
break;
case Gravity.BOTTOM:
childTop = parentBottom - height - lp.bottomMargin;