For a transparent block, the tab order is derived from the order of the <entry>
tags, while for a non-transparent block, the tab order is derived from the order
of the <field> tags. This is inconsistent.
The tab order should be independent of the <logic> block and be defined only
through the <layout> block.
Possible approach:
* Generally, tab order is by default defined through order of widgets in the
<layout> block.
* Containers (box, vbox, hbox, grid) can define a rotate="same" or rotate="next"
attribute. "same" means the focus will remain in that container, and when
rotating back to the beginning, the current record will remain unchanged. "next"
means the focus will remain in that container, and when rotating back to the
beginning, the assigned block will move to the next record.
* grid will by default be rotate="next", all other containers will by default be
rotate="N".
* Rotating containers can be nested.
* Esc key can be used to leave a rotating container and jump to the next widget
after the container.
* Jumping by block could probably be removed then.
Feedback welcome. |