Uploaded image for project: 'Pivot'
  1. Pivot
  2. PIVOT-187

Container.requestFocus() lacks logic found in Component.transferFocus()

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 1.1, 1.2
    • 1.3
    • wtk
    • None

    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.

      Attachments

        Activity

          People

            tvolkert Todd Volkert
            tvolkert Todd Volkert
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: