Repository: flex-tlf
Updated Branches:
  refs/heads/develop 96a959d1b -> 219260876


FLEX-34807
Fixed the case where it's not he last paragrpah


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

Branch: refs/heads/develop
Commit: 219260876588016c5086765850aaf88839254c68
Parents: 96a959d
Author: Harbs <[email protected]>
Authored: Sun Sep 20 10:49:10 2015 +0300
Committer: Harbs <[email protected]>
Committed: Sun Sep 20 10:49:10 2015 +0300

----------------------------------------------------------------------
 textLayout/src/flashx/textLayout/edit/TextFlowEdit.as | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-tlf/blob/21926087/textLayout/src/flashx/textLayout/edit/TextFlowEdit.as
----------------------------------------------------------------------
diff --git a/textLayout/src/flashx/textLayout/edit/TextFlowEdit.as 
b/textLayout/src/flashx/textLayout/edit/TextFlowEdit.as
index 0fc41fb..6a0a561 100644
--- a/textLayout/src/flashx/textLayout/edit/TextFlowEdit.as
+++ b/textLayout/src/flashx/textLayout/edit/TextFlowEdit.as
@@ -239,12 +239,12 @@ package flashx.textLayout.edit
                        {
                                removePasteAttributes(scrapLeaf);
                                var scrapElement:FlowElement = scrapLeaf;       
        // highest level complete element in the scrap
+                               var scrapParagraph:ParagraphElement = 
scrapLeaf.getParagraph();
 
                                // On the first paragraph, it always merges in 
to the destination paragraph if the destination paragraph has content
                                var destinationParagraph:ParagraphElement = 
destinationLeaf ? destinationLeaf.getParagraph() : destinationParagraph;
                                if (firstParagraph && 
(destinationParagraph.textLength > 1 || applyFormat))
                                {
-                                       var scrapParagraph:ParagraphElement = 
scrapLeaf.getParagraph();
                                        if (!scrapParagraph.format || 
scrapParagraph.format.getStyle(ConverterBase.MERGE_TO_NEXT_ON_PASTE) === 
undefined)
                                                doSplit = true;
                                        scrapElement = 
scrapParagraph.getChildAt(0);
@@ -323,7 +323,19 @@ package flashx.textLayout.edit
                                insertPosition = destinationLeaf ? 
destinationLeaf.getAbsoluteStart() : textFlow.textLength - 1;
                                
                                scrapLeaf = scrapFlow.getFirstLeaf();
+                               // check to make sure we're inserting into the 
right paragraph
+                               if(destinationLeaf && scrapLeaf && 
scrapLeaf.getParagraph() == scrapParagraph)
+                               {
+                                       if(destinationLeaf.getParagraph() != 
destinationParagraph)
+                                       {
+                                               insertPosition--;
+                                               destinationLeaf = null;
+                                       }
+                               }
                        }
+                       // keep the cursor in the same paragraph unless a whole 
paragraph was inserted 
+                       
if(scrapParagraph.getStyle(ConverterBase.MERGE_TO_NEXT_ON_PASTE) == "true" && 
insertPosition == destinationParagraph.getAbsoluteStart() + 
destinationParagraph.textLength)
+                               insertPosition--;
                        
                        return insertPosition;
                }

Reply via email to