Repository: flex-asjs
Updated Branches:
  refs/heads/tlf 56a507d5e -> ff285e6c9


get point cursor to move as you type


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

Branch: refs/heads/tlf
Commit: ff285e6c918f69792a58f6df8f71a5e809e667f2
Parents: 56a507d
Author: Alex Harui <[email protected]>
Authored: Mon May 8 21:39:16 2017 -0700
Committer: Alex Harui <[email protected]>
Committed: Mon May 8 21:39:16 2017 -0700

----------------------------------------------------------------------
 .../textLayout/container/ContainerController.as |  6 +++-
 .../flex/org/apache/flex/text/html/TextLine.as  | 30 +++++++++++++++++---
 2 files changed, 31 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/ff285e6c/frameworks/projects/TLF/src/main/flex/org/apache/flex/textLayout/container/ContainerController.as
----------------------------------------------------------------------
diff --git 
a/frameworks/projects/TLF/src/main/flex/org/apache/flex/textLayout/container/ContainerController.as
 
b/frameworks/projects/TLF/src/main/flex/org/apache/flex/textLayout/container/ContainerController.as
index 74593c6..8baca14 100644
--- 
a/frameworks/projects/TLF/src/main/flex/org/apache/flex/textLayout/container/ContainerController.as
+++ 
b/frameworks/projects/TLF/src/main/flex/org/apache/flex/textLayout/container/ContainerController.as
@@ -2825,6 +2825,8 @@ package org.apache.flex.textLayout.container
                public function drawPointSelection(selFormat:SelectionFormat, 
x:Number,y:Number,w:Number,h:Number):void
                {
 //TODO create shape in abstract way
+//AJH: probably should be graphicContainer with selection rectangles drawn at 
offset positions instead
+//of positioning a rectangle.
                        var selObj:IRect = textFlow.tlfFactory.getRect();
                        
                        // Oh, this is ugly. If we are in right aligned text, 
and there is no padding, and the scrollRect is set, 
@@ -2845,11 +2847,13 @@ package org.apache.flex.textLayout.container
                        selObj.fill = new SolidColor(selFormat.pointColor);
 //                     selObj.graphics.beginFill(selFormat.pointColor);
                        // pixel snap - works for unscaled text - scaled text 
will have to accept fuzzy cursors
-                       selObj.drawRect(int(x),int(y),w,h);
+                       selObj.drawRect(0,0,w,h);
                        selObj.width = w;
                        selObj.height = h;
 //                     selObj.graphics.drawRect(int(x),int(y),w,h);
 //                     selObj.graphics.endFill();
+                       selObj.x = x;
+                       selObj.y = y;
                        
                        // make it blink.  But we never blink unless the text 
is r/w
                        if (selFormat.pointBlinkRate != 0 && 
interactionManager.editingMode == EditingMode.READ_WRITE)

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/ff285e6c/frameworks/projects/Text/src/main/flex/org/apache/flex/text/html/TextLine.as
----------------------------------------------------------------------
diff --git 
a/frameworks/projects/Text/src/main/flex/org/apache/flex/text/html/TextLine.as 
b/frameworks/projects/Text/src/main/flex/org/apache/flex/text/html/TextLine.as
index b865f33..7c195bd 100644
--- 
a/frameworks/projects/Text/src/main/flex/org/apache/flex/text/html/TextLine.as
+++ 
b/frameworks/projects/Text/src/main/flex/org/apache/flex/text/html/TextLine.as
@@ -310,15 +310,37 @@ package org.apache.flex.text.html
                                var r:Object = 
textField.getCharBoundaries(atomIndex);
                                if (r == null)
                                {
-                                       // not sure why we get null sometimes, 
but fake an answer
-                                       return new Rectangle(0, 1.2 - 
Number(textField.defaultTextFormat.size), 3, 1.2);
+                                       // getCharBoundaries doesn't seem to 
work if char is paragraph terminator
+                                       if (textField.text.charAt(atomIndex) == 
"\u2029")
+                                       {
+                                               if (textField.text.length == 1)
+                                                       return new Rectangle(0, 
1.2 - Number(textField.defaultTextFormat.size), 3, 1.2);
+                                               else
+                                               {
+                                                       r = 
textField.getCharBoundaries(atomIndex - 1);
+                                                       return new 
Rectangle(r.right, 1.2 - Number(textField.defaultTextFormat.size), 3, 1.2)
+                                               }
+                                       }
                                }
                                return Rectangle.fromObject(r);
                        }
                        COMPILE::JS
                        {
-                               // fake an answer
-                               return new Rectangle(0, 1.2 - 
_textBlock.content.elementFormat.fontSize, 3, 1.2);
+                               var w:Number;
+                               if (atomIndex == 
element.firstChild.textContent.length - 1)
+                               {
+                                       w = (element.firstChild as 
HTMLElement).getClientRects()[0].width;
+                                       return new Rectangle(w, 1.2 - 
_textBlock.content.elementFormat.fontSize, 3, 1.2);
+                               }
+                               else
+                               {
+                                       var s:String = 
element.firstChild.textContent;
+                                   (element.firstChild as 
HTMLElement).innerHTML = s.substring(0, atomIndex);
+                                   w = (element.firstChild as 
HTMLElement).getClientRects()[0].width;
+                                   (element.firstChild as 
HTMLElement).innerHTML = s;
+                                       // fake an answer
+                                       return new Rectangle(w, 1.2 - 
_textBlock.content.elementFormat.fontSize, 3, 1.2);
+                               }
                        }
                }
 

Reply via email to