fix autosizing
Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/22cf44dc Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/22cf44dc Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/22cf44dc Branch: refs/heads/develop Commit: 22cf44dc25905141a11911e80e62db8937d4e9e2 Parents: 776bfce Author: Alex Harui <[email protected]> Authored: Wed Oct 29 16:24:05 2014 -0700 Committer: Alex Harui <[email protected]> Committed: Wed Oct 29 16:24:05 2014 -0700 ---------------------------------------------------------------------- .../apache/flex/html/beads/TextFieldViewBase.as | 31 ++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/22cf44dc/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/beads/TextFieldViewBase.as ---------------------------------------------------------------------- diff --git a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/beads/TextFieldViewBase.as b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/beads/TextFieldViewBase.as index 8c423df..5ef80a9 100644 --- a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/beads/TextFieldViewBase.as +++ b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/beads/TextFieldViewBase.as @@ -23,6 +23,7 @@ package org.apache.flex.html.beads import org.apache.flex.core.CSSTextField; import org.apache.flex.core.IBeadView; + import org.apache.flex.core.ILayoutChild; import org.apache.flex.core.IStrand; import org.apache.flex.core.ITextModel; import org.apache.flex.core.IUIBase; @@ -92,11 +93,18 @@ package org.apache.flex.html.beads _textModel.addEventListener("htmlChange", htmlChangeHandler); IEventDispatcher(_strand).addEventListener("widthChanged", widthChangeHandler); IEventDispatcher(_strand).addEventListener("heightChanged", heightChangeHandler); + IEventDispatcher(_strand).addEventListener("sizeChanged", sizeChangeHandler); DisplayObjectContainer(value).addChild(_textField); if (_textModel.text !== null) text = _textModel.text; if (_textModel.html !== null) html = _textModel.html; + + var ilc:ILayoutChild = host as ILayoutChild; + + autoHeight = ilc.isHeightSizedToContent(); + autoWidth = ilc.isWidthSizedToContent(); + } /** @@ -188,8 +196,8 @@ package org.apache.flex.html.beads html = _textModel.html; } - private var autoHeight:Boolean = true; - private var autoWidth:Boolean = true; + private var autoHeight:Boolean; + private var autoWidth:Boolean; private var inHeightChange:Boolean = false; private var inWidthChange:Boolean = false; @@ -221,6 +229,25 @@ package org.apache.flex.html.beads } } + private function sizeChangeHandler(event:Event):void + { + var ilc:ILayoutChild = host as ILayoutChild; + + autoHeight = ilc.isHeightSizedToContent(); + if (!autoHeight) + { + textField.autoSize = "none"; + textField.height = DisplayObject(_strand).height; + } + + autoWidth = ilc.isWidthSizedToContent(); + if (!autoWidth) + { + textField.autoSize = "none"; + textField.width = DisplayObject(_strand).width; + } + } + /** * @copy org.apache.flex.core.IBeadView#viewHeight *
