You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by ah...@apache.org on 2015/07/31 01:21:55 UTC
[3/3] git commit: [flex-asjs] [refs/heads/develop] - touch up metrics
and layout
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 <ah...@apache.org>
Authored: Thu Jul 30 16:19:19 2015 -0700
Committer: Alex Harui <ah...@apache.org>
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 {