flex-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ha...@apache.org
Subject git commit: [flex-tlf] [refs/heads/develop] - Better handling of nested table composition (related to operations)
Date Mon, 28 Dec 2015 09:52:00 GMT
Repository: flex-tlf
Updated Branches:
  refs/heads/develop 601f0977e -> 095a165a5


Better handling of nested table composition (related to operations)


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

Branch: refs/heads/develop
Commit: 095a165a5ccfcc19d0c8b3b102cdcabc02290783
Parents: 601f097
Author: Harbs <harbs@in-tools.com>
Authored: Mon Dec 28 11:51:49 2015 +0200
Committer: Harbs <harbs@in-tools.com>
Committed: Mon Dec 28 11:51:49 2015 +0200

----------------------------------------------------------------------
 .../src/flashx/textLayout/edit/EditManager.as   |  5 +++++
 .../flashx/textLayout/edit/SelectionManager.as  | 23 +++++++++++++++++++-
 2 files changed, 27 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-tlf/blob/095a165a/textLayout/src/flashx/textLayout/edit/EditManager.as
----------------------------------------------------------------------
diff --git a/textLayout/src/flashx/textLayout/edit/EditManager.as b/textLayout/src/flashx/textLayout/edit/EditManager.as
index ba04a61..0eaafeb 100644
--- a/textLayout/src/flashx/textLayout/edit/EditManager.as
+++ b/textLayout/src/flashx/textLayout/edit/EditManager.as
@@ -480,6 +480,7 @@ package flashx.textLayout.edit
 							// select next cell in table
 							if (cell && cell.textFlow && cell.textFlow.interactionManager is EditManager)
{
 								//cell.textFlow.interactionManager.selectLastPosition();
+								deselect();
 								cell.textFlow.interactionManager.selectAll();
 								cell.textFlow.interactionManager.setFocus();
 							}
@@ -533,6 +534,10 @@ package flashx.textLayout.edit
 					overwriteMode ? overwriteText(event.text) : insertText(event.text);
 			}
 			ignoreNextTextEvent = false;
+			// if the manager is nested inside another one, do not handle it again in the outer one
+			if(superManager)
+				event.preventDefault();
+				
 		}
 		
 		/** @private */

http://git-wip-us.apache.org/repos/asf/flex-tlf/blob/095a165a/textLayout/src/flashx/textLayout/edit/SelectionManager.as
----------------------------------------------------------------------
diff --git a/textLayout/src/flashx/textLayout/edit/SelectionManager.as b/textLayout/src/flashx/textLayout/edit/SelectionManager.as
index 4c59fa4..6415776 100644
--- a/textLayout/src/flashx/textLayout/edit/SelectionManager.as
+++ b/textLayout/src/flashx/textLayout/edit/SelectionManager.as
@@ -1065,8 +1065,22 @@ package flashx.textLayout.edit
         {
             flushPendingOperations();
 			
-			if(subManager)
+			if(subManager && (anchorPosition != -1 || activePosition != -1))
+			{
 				subManager.selectRange(-1,-1);
+				subManager = null;
+			}
+			if(textFlow.nestedInTable())
+			{
+				var cell:TableCellElement = textFlow.parentElement as TableCellElement;
+				superManager = cell.getTextFlow().interactionManager;
+				superManager.currentTable = cell.getTable();
+				superManager.deselect();
+				superManager.anchorCellPosition.column = cell.colIndex;
+				superManager.anchorCellPosition.row = cell.rowIndex;
+				superManager.subManager = this;
+			}
+
             
             // anchor and active can be in any order
             // TODO: range check and clamp anchor,active
@@ -1145,7 +1159,10 @@ package flashx.textLayout.edit
                 activePosition = -1;
             }
 			else if(subManager)
+			{
+				subManager.flushPendingOperations();
 				subManager = null;
+			}
             
             var lastSelectablePos:int = (_textFlow.textLength > 0) ? _textFlow.textLength
- 1 : 0;
             
@@ -1966,6 +1983,8 @@ package flashx.textLayout.edit
 				superManager = cell.getTextFlow().interactionManager;
 				if(event.shiftKey && cell.getTable() == superManager.currentTable)
 				{
+					flushPendingOperations();
+
 					// expand cell selection if applicable
 					coords = new CellCoordinates(cell.rowIndex,cell.colIndex);
 					if(
@@ -2906,6 +2925,8 @@ package flashx.textLayout.edit
 		}
 		public function set subManager(value:ISelectionManager):void
 		{
+			if(value == _subManager)
+				return;
 			if(_subManager)
 				_subManager.selectRange(-1,-1);
 			_subManager = value;


Mime
View raw message