[
https://issues.apache.org/jira/browse/PIVOT-187?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Todd Volkert updated PIVOT-187:
-------------------------------
Description:
Use case: create a CardPane with two cards and selectedIndex==1, where the
second card is a TextInput. Now call cardPane.requestFocus(). You'd expect
the TextInput to gain the focus, but it doesn't.
The reason is that Container.requestFocus() asks its focus traversal policy for
the next component, but it performs no checks on that next component to see if
it's focusable or if it's a container that should be traversed. Such checks
exist in Component.transferFocus(), which behaves as you'd expect. In the use
case above, the index focus traversal policy returns the card at index 0, which
is not focusable because it's not visible, and requestFocus() leaves it at that
(having given nothing the focus).
This leads to a confusing disparity between transferFocus() and requestFocus()
-- one works as you'd expect,and the other doesn't.
was:
Use case: create a CardPane with two cards and selectedIndex==2, where the
second card is a TextInput. Now call cardPane.requestFocus(). You'd expect
the TextInput to gain the focus, but it doesn't.
The reason is that Container.requestFocus() asks its focus traversal policy for
the next component, but it performs no checks on that next component to see if
it's focusable or if it's a container that should be traversed. Such checks
exist in Component.transferFocus(), which behaves as you'd expect.
This leads to a confusing disparity between transferFocus() and requestFocus()
-- one works as you'd expect,and the other doesn't.
> Container.requestFocus() lacks logic found in Component.transferFocus()
> -----------------------------------------------------------------------
>
> Key: PIVOT-187
> URL: https://issues.apache.org/jira/browse/PIVOT-187
> Project: Pivot
> Issue Type: Bug
> Components: wtk
> Affects Versions: 1.1, 1.2
> Reporter: Todd Volkert
> Assignee: Todd Volkert
> Fix For: 1.3
>
>
> Use case: create a CardPane with two cards and selectedIndex==1, where the
> second card is a TextInput. Now call cardPane.requestFocus(). You'd expect
> the TextInput to gain the focus, but it doesn't.
> The reason is that Container.requestFocus() asks its focus traversal policy
> for the next component, but it performs no checks on that next component to
> see if it's focusable or if it's a container that should be traversed. Such
> checks exist in Component.transferFocus(), which behaves as you'd expect. In
> the use case above, the index focus traversal policy returns the card at
> index 0, which is not focusable because it's not visible, and requestFocus()
> leaves it at that (having given nothing the focus).
> This leads to a confusing disparity between transferFocus() and
> requestFocus() -- one works as you'd expect,and the other doesn't.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.