touch up metrics and layout
Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/e19c8198 Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/e19c8198 Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/e19c8198 Branch: refs/heads/develop Commit: e19c81980cf648b74cc33594e905d00dc6ce99d3 Parents: ac1fc71 Author: Alex Harui <[email protected]> Authored: Thu Jul 30 16:19:19 2015 -0700 Committer: Alex Harui <[email protected]> Committed: Thu Jul 30 16:19:19 2015 -0700 ---------------------------------------------------------------------- .../as/src/org/apache/flex/utils/BeadMetrics.as | 38 +++++++++++++------- .../org/apache/flex/html/beads/ContainerView.as | 8 ++--- 2 files changed, 29 insertions(+), 17 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e19c8198/frameworks/projects/Core/as/src/org/apache/flex/utils/BeadMetrics.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/Core/as/src/org/apache/flex/utils/BeadMetrics.as b/frameworks/projects/Core/as/src/org/apache/flex/utils/BeadMetrics.as index bd87470..220f6d0 100644 --- a/frameworks/projects/Core/as/src/org/apache/flex/utils/BeadMetrics.as +++ b/frameworks/projects/Core/as/src/org/apache/flex/utils/BeadMetrics.as @@ -48,25 +48,37 @@ public class BeadMetrics public static function getMetrics(object:Object) : UIMetrics { var borderThickness:Object = ValuesManager.valuesImpl.getValue(object,"border-width"); + var borderStyle:Object = ValuesManager.valuesImpl.getValue(object,"border-style"); + var border:Object = ValuesManager.valuesImpl.getValue(object,"border"); var borderOffset:Number; - if( borderThickness == null ) + if (borderStyle == "none") + borderOffset = 0; + else if (borderThickness != null) { - borderThickness = ValuesManager.valuesImpl.getValue(object,"border"); - if (borderThickness != null) + borderOffset = Number(borderThickness); + if( isNaN(borderOffset) ) borderOffset = 0; + } + else // no style and/or no width + { + border = ValuesManager.valuesImpl.getValue(object,"border"); + if (border != null) { - if (borderThickness is Array) - borderOffset = CSSUtils.toNumber(borderThickness[0], object.width); + if (border is Array) + { + borderOffset = CSSUtils.toNumber(border[0], object.width); + borderStyle = border[1]; + } + else if (border == "none") + borderOffset = 0; + else if (border is String) + borderOffset = CSSUtils.toNumber(border as String, object.width); else - borderOffset = CSSUtils.toNumber(borderThickness as String, object.width); + borderOffset = Number(border); } - else + else // no border style set at all so default to none borderOffset = 0; - } - else { - borderOffset = Number(borderThickness); - if( isNaN(borderOffset) ) borderOffset = 0; - } - + } + var paddingLeft:Object; var paddingTop:Object; var paddingRight:Object; http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e19c8198/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/ContainerView.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/ContainerView.as b/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/ContainerView.as index e7fd2ae..4785ed3 100644 --- a/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/ContainerView.as +++ b/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/ContainerView.as @@ -279,8 +279,8 @@ package org.apache.flex.html.beads viewportModel.contentArea = contentView; viewportModel.contentIsHost = false; - viewportModel.contentWidth = host.width - metrics.left - metrics.right; - viewportModel.contentHeight = host.height - metrics.top - metrics.bottom; + viewportModel.contentWidth = Math.max(host.width - metrics.left - metrics.right, 0); + viewportModel.contentHeight = Math.max(host.height - metrics.top - metrics.bottom, 0); viewportModel.contentX = metrics.left; viewportModel.contentY = metrics.top; @@ -347,13 +347,13 @@ package org.apache.flex.html.beads else if (!host.isWidthSizedToContent() && host.isHeightSizedToContent()) { viewport.needsHorizontalScroller(); - host.setHeight(viewportModel.contentHeight-metrics.top-metrics.bottom, false); + host.setHeight(viewportModel.contentHeight+metrics.top+metrics.bottom, false); resizeViewport(); } else if (host.isWidthSizedToContent() && !host.isHeightSizedToContent()) { viewport.needsVerticalScroller(); - host.setWidth(viewportModel.contentWidth-metrics.left-metrics.right, false); + host.setWidth(viewportModel.contentWidth+metrics.left+metrics.right, false); resizeViewport(); } else {
