aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTor Norbye <tnorbye@google.com>2012-06-20 19:00:11 -0700
committerTor Norbye <tnorbye@google.com>2012-06-20 19:00:11 -0700
commit8a76d00976eabe38e83d1c2ded2297c0fa0b8d47 (patch)
tree3bc621331f20d8e57ee2d77498f50aebea13d683
parent9ff09abaa5319f41cbcccb592cf472129dd3a479 (diff)
downloadsdk-8a76d00976eabe38e83d1c2ded2297c0fa0b8d47.zip
sdk-8a76d00976eabe38e83d1c2ded2297c0fa0b8d47.tar.gz
sdk-8a76d00976eabe38e83d1c2ded2297c0fa0b8d47.tar.bz2
GridLayout bug fix
This changeset fixes a bug in the vertical handling of views. Change-Id: I80896b2f6e5c4799c14c55e46e0bd90388b2901f
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/common/layout/grid/GridDropHandler.java3
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/common/layout/grid/GridModel.java6
2 files changed, 7 insertions, 2 deletions
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/common/layout/grid/GridDropHandler.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/common/layout/grid/GridDropHandler.java
index 0292429..e01e045 100644
--- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/common/layout/grid/GridDropHandler.java
+++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/common/layout/grid/GridDropHandler.java
@@ -669,6 +669,8 @@ public class GridDropHandler {
if (!GravityHelper.isConstrainedHorizontally(gravity)) {
gravity |= GravityHelper.GRAVITY_LEFT;
}
+ /* This causes problems: Try placing two buttons vertically from the top of the layout.
+ We need to solve the free column/free row problem first.
if (!GravityHelper.isConstrainedVertically(gravity)
// There is no baseline constant, so we have to leave it unconstrained instead
&& mRowMatch.type != SegmentType.BASELINE
@@ -678,6 +680,7 @@ public class GridDropHandler {
&& !mRowMatch.createCell) {
gravity |= GravityHelper.GRAVITY_TOP;
}
+ */
mGrid.setGridAttribute(newChild, ATTR_LAYOUT_GRAVITY, getGravity(gravity));
mGrid.setGridAttribute(newChild, ATTR_LAYOUT_ROW, row);
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/common/layout/grid/GridModel.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/common/layout/grid/GridModel.java
index 65a61b4..8cc9f90 100644
--- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/common/layout/grid/GridModel.java
+++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/common/layout/grid/GridModel.java
@@ -1689,7 +1689,8 @@ public class GridModel {
int endColumn = column + view.columnSpan;
if (endColumn > newColumn
|| endColumn == newColumn && (view.node.getBounds().x2() > x
- || !GravityHelper.isLeftAligned(view.gravity))) {
+ || GravityHelper.isConstrainedHorizontally(view.gravity)
+ && !GravityHelper.isLeftAligned(view.gravity))) {
// This cell spans the new insert position, so increment the column span
view.columnSpan += insertMarginColumn ? 2 : 1;
setColumnSpanAttribute(node, view.columnSpan);
@@ -1773,7 +1774,8 @@ public class GridModel {
int endRow = row + view.rowSpan;
if (endRow > newRow
|| endRow == newRow && (view.node.getBounds().y2() > y
- || !GravityHelper.isTopAligned(view.gravity))) {
+ || GravityHelper.isConstrainedVertically(view.gravity)
+ && !GravityHelper.isTopAligned(view.gravity))) {
// This cell spans the new insert position, so increment the row span
view.rowSpan += insertMarginRow ? 2 : 1;
setRowSpanAttribute(node, view.rowSpan);