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

Harbs commented on FLEX-35078:
------------------------------

Thanks for checking.

I'd say this is probably not a bug at all. TLF is designed to be lazy about 
composition. The issue seems to be that it's possible to set focus before the 
composition is run. I'm not sure it makes sense to force composition every time 
 focus is set.

> Fatal when SelectionManager tries to reapply selection onto changed textFlow
> ----------------------------------------------------------------------------
>
>                 Key: FLEX-35078
>                 URL: https://issues.apache.org/jira/browse/FLEX-35078
>             Project: Apache Flex
>          Issue Type: Bug
>          Components: Spark: RichEditableText, TLF
>    Affects Versions: Apache Flex 4.15.0
>            Reporter: Mihai Chira
>            Assignee: Harbs
>              Labels: easytest
>             Fix For: Apache Flex 4.16.0
>
>         Attachments: Main.mxml
>
>
> *Steps to reproduce*:
> * run the attached mxml
> * click on the "Bullets" button
> *Expected results*: the bullet text is removed from the paragraph and the 
> RichEditableText is focused.
> *Actual results*: the bullet text is removed, but when the focus moves back 
> to the RichEditableText component, the following fatal is thrown:
> {noformat}
> [Fault] exception, information=RangeError: Error #2006: The supplied index is 
> out of bounds.
> at flash.text.engine::TextLine/getAtomBidiLevel()
> at 
> flashx.textLayout.compose::TextFlowLine/adjustEndElementForBidi()[C:\Users\evolverine\Adobe
>  Flash Builder 
> 4.7\FLEX-33058\src\flashx\textLayout\compose\TextFlowLine.as:2499]
> at 
> flashx.textLayout.compose::TextFlowLine/makeSelectionBlocks()[C:\Users\evolverine\Adobe
>  Flash Builder 
> 4.7\FLEX-33058\src\flashx\textLayout\compose\TextFlowLine.as:1812]
> at 
> flashx.textLayout.compose::TextFlowLine/http://ns.adobe.com/textLayout/internal/2008::calculateSelectionBounds()[C:\Users\evolverine\Adobe
>  Flash Builder 
> 4.7\FLEX-33058\src\flashx\textLayout\compose\TextFlowLine.as:1517]
> at 
> flashx.textLayout.compose::TextFlowLine/getSelectionShapesCacheEntry()[C:\Users\evolverine\Adobe
>  Flash Builder 
> 4.7\FLEX-33058\src\flashx\textLayout\compose\TextFlowLine.as:1428]
> at 
> flashx.textLayout.compose::TextFlowLine/createSelectionShapes()[C:\Users\evolverine\Adobe
>  Flash Builder 
> 4.7\FLEX-33058\src\flashx\textLayout\compose\TextFlowLine.as:1664]
> at 
> flashx.textLayout.compose::TextFlowLine/http://ns.adobe.com/textLayout/internal/2008::hiliteBlockSelection()[C:\Users\evolverine\Adobe
>  Flash Builder 
> 4.7\FLEX-33058\src\flashx\textLayout\compose\TextFlowLine.as:2196]
> at 
> flashx.textLayout.container::ContainerController/http://ns.adobe.com/textLayout/internal/2008::addSelectionShapes()[C:\Users\evolverine\workspace\tlf\textLayout\src\flashx\textLayout\container\ContainerController.as:2920]
> at 
> flashx.textLayout.edit::SelectionManager/addSelectionShapes()[C:\Users\evolverine\workspace\tlf\textLayout\src\flashx\textLayout\edit\SelectionManager.as:1240]
> at 
> flashx.textLayout.edit::SelectionManager/refreshSelection()[C:\Users\evolverine\workspace\tlf\textLayout\src\flashx\textLayout\edit\SelectionManager.as:1272]
> at 
> flashx.textLayout.edit::SelectionManager/http://ns.adobe.com/textLayout/internal/2008::setSelectionFormatState()[C:\Users\evolverine\workspace\tlf\textLayout\src\flashx\textLayout\edit\SelectionManager.as:896]
> at 
> flashx.textLayout.edit::SelectionManager/focusInHandler()[C:\Users\evolverine\workspace\tlf\textLayout\src\flashx\textLayout\edit\SelectionManager.as:2279]
> at 
> flashx.textLayout.container::ContainerController/focusInHandler()[C:\Users\evolverine\workspace\tlf\textLayout\src\flashx\textLayout\container\ContainerController.as:2452]
> at 
> flashx.textLayout.container::TextContainerManager/focusInHandler()[C:\Users\evolverine\workspace\tlf\textLayout\src\flashx\textLayout\container\TextContainerManager.as:2089]
> at 
> spark.components.supportClasses::RichEditableTextContainerManager/focusInHandler()[C:\Users\evolverine\workspace\flex-sdk\frameworks\projects\spark\src\spark\components\supportClasses\RichEditableTextContainerManager.as:642]
> at 
> flashx.textLayout.container::ContainerController/http://ns.adobe.com/textLayout/internal/2008::requiredFocusInHandler()[C:\Users\evolverine\workspace\tlf\textLayout\src\flashx\textLayout\container\ContainerController.as:2470]
> at flash.display::Stage/set focus()
> at 
> mx.core::UIComponent/setFocus()[C:\Users\evolverine\workspace\flex-sdk\frameworks\projects\framework\src\mx\core\UIComponent.as:10437]
> at 
> spark.components::RichEditableText/setFocus()[C:\Users\evolverine\workspace\flex-sdk\frameworks\projects\spark\src\spark\components\RichEditableText.as:3122]
> at Main/bulletList_clickHandler()[C:\Users\evolverine\Adobe Flash Builder 
> 4.7\FLEX-33058\src\Main.mxml:39]
> at Main/__bulletsButton_click()[C:\Users\evolverine\Adobe Flash Builder 
> 4.7\FLEX-33058\src\Main.mxml:71]
> {noformat}
> *Workaround*: call {{display.validateNow();}} before {{display.setFocus();}}
> *Notes*:
> * couldn't reproduce the bug with only one line; we seem to need the text to 
> wrap around the second line.
> * couldn't reproduce the bug if the span representing the bullet text wasn't 
> set to an explicit font size (of any value).
> * could reproduce the bug with many random (non-empty) strings for the bullet 
> text, including one space.
> * could reproduce the bug when I set the fontWeight instead of the fontSize 
> on the bullet span. It seems that anything that will get the bullet placed 
> into a separate span rather than merged with the span containing the main 
> text will reproduce the bug.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to