You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@flex.apache.org by "Carol Frampton (JIRA)" <ji...@apache.org> on 2013/02/22 17:36:12 UTC

[jira] [Comment Edited] (FLEX-33409) TLF crashes when hypens are shown in a multi span textFlow

    [ https://issues.apache.org/jira/browse/FLEX-33409?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13584365#comment-13584365 ] 

Carol Frampton edited comment on FLEX-33409 at 2/22/13 4:34 PM:
----------------------------------------------------------------

A simpler example is:
    <s:Panel width="100%" height="100%">
        <s:TextArea width="100%" height="100%" id="textArea" text="Second span. This text has a hypen in the next long word long word LongWord­WithAHyphen. Make sure the hypen is shown and there is a 3rd line! If you can see it, then start typing here ->"/>
    </s:Panel>

Using the above code, click at the end of the displayed text to insert text, type a "1", and you will see the text displayed already looks incorrect.  Then type a left arrow which demonstrates things are messed  up internally.

Error: Error #2160: The TextLine is INVALID and cannot be used to access the current state of the TextBlock.
	at flash.text.engine::TextBlock/findPreviousAtomBoundary()
	at flashx.textLayout.elements::ParagraphElement/findPreviousAtomBoundary()[/Users/cframpto/dev/flex/sdk/branches/develop/frameworks/projects/textLayout/3.0.33/src/flashx/textLayout/elements/ParagraphElement.as:480]
	at flashx.textLayout.utils::NavigationUtil$/previousAtomHelper()[/Users/cframpto/dev/flex/sdk/branches/develop/frameworks/projects/textLayout/3.0.33/src/flashx/textLayout/utils/NavigationUtil.as:70]
	at flashx.textLayout.utils::NavigationUtil$/doIncrement()[/Users/cframpto/dev/flex/sdk/branches/develop/frameworks/projects/textLayout/3.0.33/src/flashx/textLayout/utils/NavigationUtil.as:58]
	at flashx.textLayout.utils::NavigationUtil$/previousAtomPosition()[/Users/cframpto/dev/flex/sdk/branches/develop/frameworks/projects/textLayout/3.0.33/src/flashx/textLayout/utils/NavigationUtil.as:81]
	at flashx.textLayout.utils::NavigationUtil$/moveBackwardHelper()[/Users/cframpto/dev/flex/sdk/branches/develop/frameworks/projects/textLayout/3.0.33/src/flashx/textLayout/utils/NavigationUtil.as:229]
	at flashx.textLayout.utils::NavigationUtil$/previousCharacter()[/Users/cframpto/dev/flex/sdk/branches/develop/frameworks/projects/textLayout/3.0.33/src/flashx/textLayout/utils/NavigationUtil.as:292]
	at flashx.textLayout.edit::SelectionManager/handleLeftArrow()[/Users/cframpto/dev/flex/sdk/branches/develop/frameworks/projects/textLayout/3.0.33/src/flashx/textLayout/edit/SelectionManager.as:1564]
	at flashx.textLayout.edit::SelectionManager/handleKeyEvent()[/Users/cframpto/dev/flex/sdk/branches/develop/frameworks/projects/textLayout/3.0.33/src/flashx/textLayout/edit/SelectionManager.as:1731]
	at flashx.textLayout.edit::SelectionManager/keyDownHandler()[/Users/cframpto/dev/flex/sdk/branches/develop/frameworks/projects/textLayout/3.0.33/src/flashx/textLayout/edit/SelectionManager.as:1794]
	at flashx.textLayout.edit::EditManager/keyDownHandler()[/Users/cframpto/dev/flex/sdk/branches/develop/frameworks/projects/textLayout/3.0.33/src/flashx/textLayout/edit/EditManager.as:288]
	at flashx.textLayout.container::ContainerController/keyDownHandler()[/Users/cframpto/dev/flex/sdk/branches/develop/frameworks/projects/textLayout/3.0.33/src/flashx/textLayout/container/ContainerController.as:2529]
	at flashx.textLayout.container::TextContainerManager/keyDownHandler()[/Users/cframpto/dev/flex/sdk/branches/develop/frameworks/projects/textLayout/3.0.33/src/flashx/textLayout/container/TextContainerManager.as:1889]
	at spark.components.supportClasses::RichEditableTextContainerManager/keyDownHandler()[/Users/cframpto/dev/flex/sdk/branches/develop/frameworks/projects/spark/src/spark/components/supportClasses/RichEditableTextContainerManager.as:665]
	at flash.events::EventDispatcher/dispatchEventFunction()
	at flash.events::EventDispatcher/dispatchEvent()
	at mx.core::UIComponent/dispatchEvent()[/Users/cframpto/dev/flex/sdk/branches/develop/frameworks/projects/framework/src/mx/core/UIComponent.as:13160]
	at mx.managers::SystemManager/keyDownHandler()[/Users/cframpto/dev/flex/sdk/branches/develop/frameworks/projects/framework/src/mx/managers/SystemManager.as:2889]

If you start with an empty TextArea and paste this same text in it does not hyphenate and wraps LongWord­WithAHyphen to the next line.

                
      was (Author: cframpton):
    The textFlow above can be replaced with this simpler one.

            private const textFLowXML:XML = <TextFlow xmlns="http://ns.adobe.com/textLayout/2008">
                        <span> Second span. This text has a hypen in the next long word long word LongWord­WithAHyphen. Make sure the hypen is shown and there is a 3rd line! If you can see it, then start typing here -></span>
                </TextFlow>;

Using the above code, click at the end of the displayed text to insert text, type a "1", and you will see the text displayed already looks incorrect.  Then type a left arrow which demonstrates things are messed  up internally.

Error: Error #2160: The TextLine is INVALID and cannot be used to access the current state of the TextBlock.
	at flash.text.engine::TextBlock/findPreviousAtomBoundary()
	at flashx.textLayout.elements::ParagraphElement/findPreviousAtomBoundary()[/Users/cframpto/dev/flex/sdk/branches/develop/frameworks/projects/textLayout/3.0.33/src/flashx/textLayout/elements/ParagraphElement.as:480]
	at flashx.textLayout.utils::NavigationUtil$/previousAtomHelper()[/Users/cframpto/dev/flex/sdk/branches/develop/frameworks/projects/textLayout/3.0.33/src/flashx/textLayout/utils/NavigationUtil.as:70]
	at flashx.textLayout.utils::NavigationUtil$/doIncrement()[/Users/cframpto/dev/flex/sdk/branches/develop/frameworks/projects/textLayout/3.0.33/src/flashx/textLayout/utils/NavigationUtil.as:58]
	at flashx.textLayout.utils::NavigationUtil$/previousAtomPosition()[/Users/cframpto/dev/flex/sdk/branches/develop/frameworks/projects/textLayout/3.0.33/src/flashx/textLayout/utils/NavigationUtil.as:81]
	at flashx.textLayout.utils::NavigationUtil$/moveBackwardHelper()[/Users/cframpto/dev/flex/sdk/branches/develop/frameworks/projects/textLayout/3.0.33/src/flashx/textLayout/utils/NavigationUtil.as:229]
	at flashx.textLayout.utils::NavigationUtil$/previousCharacter()[/Users/cframpto/dev/flex/sdk/branches/develop/frameworks/projects/textLayout/3.0.33/src/flashx/textLayout/utils/NavigationUtil.as:292]
	at flashx.textLayout.edit::SelectionManager/handleLeftArrow()[/Users/cframpto/dev/flex/sdk/branches/develop/frameworks/projects/textLayout/3.0.33/src/flashx/textLayout/edit/SelectionManager.as:1564]
	at flashx.textLayout.edit::SelectionManager/handleKeyEvent()[/Users/cframpto/dev/flex/sdk/branches/develop/frameworks/projects/textLayout/3.0.33/src/flashx/textLayout/edit/SelectionManager.as:1731]
	at flashx.textLayout.edit::SelectionManager/keyDownHandler()[/Users/cframpto/dev/flex/sdk/branches/develop/frameworks/projects/textLayout/3.0.33/src/flashx/textLayout/edit/SelectionManager.as:1794]
	at flashx.textLayout.edit::EditManager/keyDownHandler()[/Users/cframpto/dev/flex/sdk/branches/develop/frameworks/projects/textLayout/3.0.33/src/flashx/textLayout/edit/EditManager.as:288]
	at flashx.textLayout.container::ContainerController/keyDownHandler()[/Users/cframpto/dev/flex/sdk/branches/develop/frameworks/projects/textLayout/3.0.33/src/flashx/textLayout/container/ContainerController.as:2529]
	at flashx.textLayout.container::TextContainerManager/keyDownHandler()[/Users/cframpto/dev/flex/sdk/branches/develop/frameworks/projects/textLayout/3.0.33/src/flashx/textLayout/container/TextContainerManager.as:1889]
	at spark.components.supportClasses::RichEditableTextContainerManager/keyDownHandler()[/Users/cframpto/dev/flex/sdk/branches/develop/frameworks/projects/spark/src/spark/components/supportClasses/RichEditableTextContainerManager.as:665]
	at flash.events::EventDispatcher/dispatchEventFunction()
	at flash.events::EventDispatcher/dispatchEvent()
	at mx.core::UIComponent/dispatchEvent()[/Users/cframpto/dev/flex/sdk/branches/develop/frameworks/projects/framework/src/mx/core/UIComponent.as:13160]
	at mx.managers::SystemManager/keyDownHandler()[/Users/cframpto/dev/flex/sdk/branches/develop/frameworks/projects/framework/src/mx/managers/SystemManager.as:2889]

If you start with an empty TextArea and paste this same text in it does not hyphenate and wraps LongWord­WithAHyphen to the next line.

                  
> TLF crashes when hypens are shown in a multi span textFlow
> ----------------------------------------------------------
>
>                 Key: FLEX-33409
>                 URL: https://issues.apache.org/jira/browse/FLEX-33409
>             Project: Apache Flex
>          Issue Type: Bug
>    Affects Versions: Adobe Flex SDK 4.6 (Release)
>         Environment: TLF editing
>            Reporter: Woodwing Developer
>            Priority: Blocker
>              Labels: TLF, crash, editing, hyphen, span, textflow
>
> When soft hyphens are used and shown, in a textFlow with 2 or more spans, TLF crashes when typing.
> Import the underlying text flow xml. Resize the text area until the hyphen is visible. Then start typing AFTER the hypened word, also pressing the enter key. TLF crashes.
> Sample textFLow (if the soft hyphen is not show, insert a new one in the appropriate word):
>   <TextFlow color="#000000" fontSize="12" lineHeight="14" paddingBottom="0" paddingLeft="10" paddingRight="10" paddingTop="0" whiteSpaceCollapse="preserve" version="2.0.0" xmlns="http://ns.adobe.com/textLayout/2008">
>     <p>
>       <span backgroundColor="#ffffff" textDecoration="underline">First Span</span>
>       <span backgroundColor="#ffffff" textDecoration="none"> Second span. This text has a hypen in the next long word LongWord­WithAHyphen. Make sure the hypen is shown! Then start typing and pressing enter till TLF crashes (should happen fast enough)</span>
>   </p>
>   </TextFlow>
> It seems that the textLine is damaged but the text engine fails to recompose the line properly.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira