You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by ha...@apache.org on 2014/10/06 10:58:32 UTC

git commit: [flex-tlf] [refs/heads/tables] - Fixed handling of span editing before TableElement

Repository: flex-tlf
Updated Branches:
  refs/heads/tables a0a0749ea -> 3d51c48f3


Fixed handling of span editing before TableElement


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

Branch: refs/heads/tables
Commit: 3d51c48f3b3a4851dcb0019a5270eea8dddc75bc
Parents: a0a0749
Author: Harbs <ha...@in-tools.com>
Authored: Mon Oct 6 11:58:25 2014 +0300
Committer: Harbs <ha...@in-tools.com>
Committed: Mon Oct 6 11:58:25 2014 +0300

----------------------------------------------------------------------
 textLayout/src/flashx/textLayout/edit/ParaEdit.as   | 11 +++++++++--
 .../flashx/textLayout/elements/ParagraphElement.as  | 16 ++++++++++++----
 .../flashx/textLayout/elements/TableLeafElement.as  |  5 +++++
 3 files changed, 26 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-tlf/blob/3d51c48f/textLayout/src/flashx/textLayout/edit/ParaEdit.as
----------------------------------------------------------------------
diff --git a/textLayout/src/flashx/textLayout/edit/ParaEdit.as b/textLayout/src/flashx/textLayout/edit/ParaEdit.as
index 09ee41b..4af7e23 100644
--- a/textLayout/src/flashx/textLayout/edit/ParaEdit.as
+++ b/textLayout/src/flashx/textLayout/edit/ParaEdit.as
@@ -30,11 +30,13 @@ package flashx.textLayout.edit
 	import flashx.textLayout.elements.ParagraphElement;
 	import flashx.textLayout.elements.SpanElement;
 	import flashx.textLayout.elements.SubParagraphGroupElementBase;
+	import flashx.textLayout.elements.TableLeafElement;
 	import flashx.textLayout.elements.TextFlow;
 	import flashx.textLayout.formats.Float;
 	import flashx.textLayout.formats.ITextLayoutFormat;
 	import flashx.textLayout.formats.TextLayoutFormat;
 	import flashx.textLayout.tlf_internal;
+	import flashx.textLayout.elements.TableElement;
 	
 	use namespace tlf_internal;
 
@@ -69,10 +71,15 @@ package flashx.textLayout.edit
 			{
 				// If we're at the start a span, go to the previous span in the same paragraph, and insert at the end of it
 				if (paraSelBegIdx == sibling.getElementRelativeStart(paragraph))
-					sibling = FlowLeafElement(sibling).getPreviousLeaf(paragraph);	
-				siblingIndex = sibling.parent.getChildIndex(sibling) + 1;
+					sibling = FlowLeafElement(sibling).getPreviousLeaf(paragraph);
+				if(sibling is TableLeafElement)
+					siblingIndex = sibling.parent.parent.getChildIndex(sibling.parent) + 1;
+				else
+					siblingIndex = sibling.parent.getChildIndex(sibling) + 1;
 			}
 			var insertParent:FlowGroupElement = sibling.parent;
+			if(insertParent is TableElement)
+				insertParent = insertParent.parent;
 			
 			// If we are adding text to the start or end of a link, it doesn't allow the insertion to group with the link.
 			// So in that case, we will insert to the element beside the position that is *not* part of the link.

http://git-wip-us.apache.org/repos/asf/flex-tlf/blob/3d51c48f/textLayout/src/flashx/textLayout/elements/ParagraphElement.as
----------------------------------------------------------------------
diff --git a/textLayout/src/flashx/textLayout/elements/ParagraphElement.as b/textLayout/src/flashx/textLayout/elements/ParagraphElement.as
index 1fec299..6527d7c 100644
--- a/textLayout/src/flashx/textLayout/elements/ParagraphElement.as
+++ b/textLayout/src/flashx/textLayout/elements/ParagraphElement.as
@@ -352,6 +352,8 @@ package flashx.textLayout.elements
 		tlf_internal override function createContentAsGroup(pos:int=0):GroupElement
 		{
 			var tb:TextBlock = getTextBlockAtPosition(pos);
+			if(!tb)
+				tb = getTextBlockAtPosition(pos-1);
 			var group:GroupElement = tb.content as GroupElement;
 			if (!group)
 			{
@@ -467,14 +469,12 @@ package flashx.textLayout.elements
 			{
 				if(chldrn[i] is TableElement)
 				{
-					if(chldrn[i].parentRelativeStart == pos)
-						return [chldrn[i]];
 					if(chldrn[i].parentRelativeStart < pos)
 					{
 						retVal.length = 0;
 						continue;
 					}
-					if(chldrn[i].parentRelativeStart > pos)
+					if(chldrn[i].parentRelativeStart >= pos)
 						break;
 				}
 				retVal.push(chldrn[i]);		
@@ -487,7 +487,15 @@ package flashx.textLayout.elements
 		{
 			var relativeStart:int = child.getElementRelativeStart(this);
 			var tb:TextBlock = getTextBlockAtPosition(relativeStart);
-			if (getTextBlocks().length == 0 || !tb)
+			if(!tb)
+				tb = getTextBlockAtPosition(relativeStart-1);
+			
+			if(!tb)
+			{
+				child.releaseContentElement();
+				return;
+			}
+			if (getTextBlocks().length == 0)
 			{
 				child.releaseContentElement();
 				createTextBlock();	// does the whole tree

http://git-wip-us.apache.org/repos/asf/flex-tlf/blob/3d51c48f/textLayout/src/flashx/textLayout/elements/TableLeafElement.as
----------------------------------------------------------------------
diff --git a/textLayout/src/flashx/textLayout/elements/TableLeafElement.as b/textLayout/src/flashx/textLayout/elements/TableLeafElement.as
index 44e62a4..0fdf629 100644
--- a/textLayout/src/flashx/textLayout/elements/TableLeafElement.as
+++ b/textLayout/src/flashx/textLayout/elements/TableLeafElement.as
@@ -115,6 +115,11 @@ package flashx.textLayout.elements
 		{
 			return _table.getParagraph();
 		}
+		
+		override public function getElementRelativeStart(ancestorElement:FlowElement):int
+		{
+			return _table.getElementRelativeStart(ancestorElement);
+		}
 
 	}
 }