Improve UI Navigation with Keyboard
I feel UI navigation with the keyboard could be improved. Currently in the code to determine the next widget to navigate to, there is a complex looping over all widgets in a window with various means of determine eligibility. It does work for most windows but for something like the CountDialog or the various incarnations of the inventory, the user is stuck with the fact that the textinput blocks most input.
This could be mitigated in both vanilla menus and custom menus by the grouping of widgets of common usage into a container that allows for tabbing between these groups. For example in the inventory the filter buttons and the search bar could be two separate groups in the container. Tabbing would change between these, so if the search bar is active text is accepted and can filter items in the inventory but if the filter button group is active using A or D swaps between the filters.
Potential outcomes of this improvement should be:
- A container of widget groups that are defined at object construction (potentially dynamically in the future through Lua API)
- A mechanism for cleanly navigating between widgets in a group
- Maintain ability to tab between windows in the various inventory menus