Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8092804

[2D traversal, RTL] Some behavior classes are confusing the semantics of left & right in RTL mode.

    Details

      Description

      See test case RT34774.java in issue RT-34774. Left/right traversal works in RTL for most controls, but are reversed for MenuButton. This probably affects a few other controls also, such as TreeView, Accordion, and TabPane.

      The behaviors for these controls use the actions TraverseLeft and TraverseRight with modified semantics. MenuButton, for example, will in LTR mode with a TraverseLeft action open the menu if the Side is set to LEFT, otherwise it will hand it over to the TraversalEngine. In Accordion, TraverseLeft can mean "traverse up".

      A part of the problem is that BehaviorBase switches the action names TraverseLeft and TraverseRight before the subclass will see it. This causes confusion for MenuButtonBehaviorBase, which may pass on the wrong visual direction to the TraversalEngine. I think that BehaviorBase should not switch the actions, and that each subclass should handle RTL explicitly instead.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                leifs Leif Samuelsson (Inactive)
                Reporter:
                leifs Leif Samuelsson (Inactive)
              • Votes:
                1 Vote for this issue
                Watchers:
                4 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:
                  Imported: