Repository: flex-tlf
Updated Branches:
  refs/heads/tables b9011500b -> d159e00c7


Cells were incorrectly setting padding every time they were composed which was 
causing cell lines to become incorrectly invalid and put cells into an unstable 
state.
I think ContainerController should be adding the array including tables to 
_shapeChildren and not the old _linesInView which only contains pure lines.


Project: http://git-wip-us.apache.org/repos/asf/flex-tlf/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-tlf/commit/d159e00c
Tree: http://git-wip-us.apache.org/repos/asf/flex-tlf/tree/d159e00c
Diff: http://git-wip-us.apache.org/repos/asf/flex-tlf/diff/d159e00c

Branch: refs/heads/tables
Commit: d159e00c74a698276221fe3c4e1d6e4a5fc14cb5
Parents: b901150
Author: Harbs <ha...@in-tools.com>
Authored: Sun Oct 26 23:08:40 2014 +0200
Committer: Harbs <ha...@in-tools.com>
Committed: Sun Oct 26 23:08:40 2014 +0200

----------------------------------------------------------------------
 .../textLayout/container/ContainerController.as |  3 +-
 .../textLayout/elements/TableCellElement.as     | 47 +++++++++++++++-----
 2 files changed, 39 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-tlf/blob/d159e00c/textLayout/src/flashx/textLayout/container/ContainerController.as
----------------------------------------------------------------------
diff --git a/textLayout/src/flashx/textLayout/container/ContainerController.as 
b/textLayout/src/flashx/textLayout/container/ContainerController.as
index 2e375f4..eef34fb 100644
--- a/textLayout/src/flashx/textLayout/container/ContainerController.as
+++ b/textLayout/src/flashx/textLayout/container/ContainerController.as
@@ -3248,7 +3248,8 @@ package flashx.textLayout.container
                        {
                                // We only updated some of the lines. Remove 
the old versions off the end, and add in the new ones from _linesInView
                                _shapeChildren.length = shapeChildrenStartIdx;  
        // truncate
-                               _shapeChildren = 
_shapeChildren.concat(_linesInView);   // append _linesInView to end of 
_shapeChildren
+                               //_shapeChildren = 
_shapeChildren.concat(_linesInView); // append _linesInView to end of 
_shapeChildren
+                               _shapeChildren = 
_shapeChildren.concat(newShapeChildren);       // append _linesInView to end of 
_shapeChildren
                                _linesInView.length = 0;        // truncate
                        }
                        else

http://git-wip-us.apache.org/repos/asf/flex-tlf/blob/d159e00c/textLayout/src/flashx/textLayout/elements/TableCellElement.as
----------------------------------------------------------------------
diff --git a/textLayout/src/flashx/textLayout/elements/TableCellElement.as 
b/textLayout/src/flashx/textLayout/elements/TableCellElement.as
index 7f04939..197d4c9 100644
--- a/textLayout/src/flashx/textLayout/elements/TableCellElement.as
+++ b/textLayout/src/flashx/textLayout/elements/TableCellElement.as
@@ -27,6 +27,7 @@ package flashx.textLayout.elements
        import flash.utils.getDefinitionByName;
        import flash.utils.getQualifiedClassName;
        
+       import flashx.textLayout.compose.FlowDamageType;
        import flashx.textLayout.compose.TextFlowLine;
        import flashx.textLayout.container.ContainerController;
        import flashx.textLayout.edit.EditManager;
@@ -90,26 +91,52 @@ package flashx.textLayout.elements
                }
 
                public function isDamaged():Boolean {
-                       return _damaged;
+                       return _damaged || (_textFlow && 
_textFlow.flowComposer.isDamaged(_textFlow.textLength));
                }
                
+               private var _savedPaddingTop:Number = 0;
+               private var _savedPaddingBottom:Number = 0;
+               private var _savedPaddingLeft:Number = 0;
+               private var _savedPaddingRight:Number = 0;
+               
                public function compose():Boolean {
+                       
+                       var pt:Number = getEffectivePaddingTop();
+                       var pb:Number = getEffectivePaddingBottom();
+                       var pl:Number = getEffectivePaddingLeft();
+                       var pr:Number = getEffectivePaddingRight();
+
+                       if(pt != _savedPaddingTop)
+                       {
+                               _controller.paddingTop = _savedPaddingTop = pt;
+                       }
+                       if(pb != _savedPaddingBottom)
+                       {
+                               _controller.paddingBottom = _savedPaddingBottom 
= pb;
+                       }
+                       if(pl != _savedPaddingLeft)
+                       {
+                               _controller.paddingLeft = _savedPaddingLeft = 
pl;
+                       }
+                       if(pr != _savedPaddingRight)
+                       {
+                               _controller.paddingRight = _savedPaddingRight = 
pr;
+                       }
+
                        var table:TableElement = getTable();
-                       width = 0;
+                       
+                       _damaged = false;
+                       
+                       var compWidth:Number = 0;
                        for(var i:int=0;i<columnSpan;i++)
                        {
                                if (table && table.getColumnAt(colIndex+i)) {
-                                       width += 
table.getColumnAt(colIndex+i).columnWidth;
+                                       compWidth += 
table.getColumnAt(colIndex+i).columnWidth;
                                }
                                
                        }
-                       
-                       _damaged = false;
-                       _controller.paddingTop = getEffectivePaddingTop();
-                       _controller.paddingBottom = getEffectivePaddingBottom();
-                       _controller.paddingLeft = getEffectivePaddingLeft();
-                       _controller.paddingRight = getEffectivePaddingRight();
-                       
+                       width = compWidth;
+
                        if (_textFlow && _textFlow.flowComposer) {
                                return _textFlow.flowComposer.compose();
                        }

Reply via email to