[ 
https://issues.apache.org/jira/browse/FLEX-33934?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Alex Harui updated FLEX-33934:
------------------------------
    Assignee:     (was: Alex Harui)

> Holding Shift+TAB pressed in DataGrid makes focus jump to textField outside 
> grid, then back to grid editors, and so on
> ----------------------------------------------------------------------------------------------------------------------
>
>                 Key: FLEX-33934
>                 URL: https://issues.apache.org/jira/browse/FLEX-33934
>             Project: Apache Flex
>          Issue Type: Bug
>          Components: Focus Manager, Spark: DataGrid
>    Affects Versions: Apache Flex 4.11.0
>         Environment: Windows 8, Adobe AIR 3.9
>            Reporter: Mihai Chira
>         Attachments: _DataGridFocus.fxp
>
>
> Steps to reproduce:
> 1. Import and run the attached project.
> 2. Double click on Brazil to enter edit mode
> 3. Press and hold Shift+TAB to tab backward through components
> Actual behaviour: focus jumps back and forth between the grid's item editors 
> and the text field outside the grid.
> Desired behaviour: focus jumps backward only through the editors, not 
> involving the text field outside the grid.
> Note: this happens without problems when Shift+TAB is pressed with lower 
> frequency.
> Note: in our application we have the same problem with the forward focus 
> (Shift not pressed), which I could not reproduce in this simple app. And 
> since we're creating many grids whose cells should be editable similarly to 
> Microsoft Excel's, the priority for us is high.
> Hints:
> 1. From my understanding, DataGridEditor.editor_keyFocusChangeHandler() and 
> FocusManager.keyFocusChangeHandler() respond to the same event 
> (FocusEvent.KEY_FOCUS_CHANGE), but listen to different objects for it. When 
> things work correctly, DataGridEditor reponds to the event once the user 
> presses (Shift+)TAB in a grid's item editor, and (does the necessary work to 
> create and focus the next editor and then) calls preventDefault() on the 
> event, which tells the FocusManager not to apply its default behaviour. All 
> works fine.
> 2. However, when (Shift+)TAB is held pressed, or pressed very quickly, what 
> seems to happen at times is that 
> DataGridEditor.editor_keyFocusChangeHandler() is never called. From what I 
> can tell from tracing the event instance in FocusManager, that's because the 
> event's target is no longer the textDisplay inside the item editor, but the 
> strange 
> "_DataGridFocus0.WindowedApplicationSkin2.Group3.contentGroup.__DataGridFocus_DataGrid1.UIComponent37"
>  instance. This means that DataGridEditor cannot respond to this event, since 
> it's not thrown by the editor it's listening to.
> 3. I also put traces where the editor is removed and where it's created in 
> DataGridEditor, which showed that when the unusual event is thrown (see hint 
> #2) the item editor is still not null, is still on stage, and still has the 
> event listener for FocusEvent.KEY_FOCUS_CHANGE. So it's not that the editor 
> has been destroyed - it's just that the event is thrown by another component.
> NOTES:
> * using selectedIndex instead of selectedItem works without error.



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

Reply via email to