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
          *  

Reply via email to