You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by ah...@apache.org on 2017/05/09 04:39:21 UTC
git commit: [flex-asjs] [refs/heads/tlf] - get point cursor to move
as you type
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 <ah...@apache.org>
Authored: Mon May 8 21:39:16 2017 -0700
Committer: Alex Harui <ah...@apache.org>
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);
+ }
}
}