Implement concept of multiple focus targets #6095
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Preliminary step for removing the necessity of an input manager from
DropdownSearchBar
.The end goal of this implementation is to make it possible for the dropdown search bar and menu to be focused together at once when the dropdown is open (in addition to
Dropdown
itself), to promote non-positional input to all those components.After countless attempts at multiple approaches for this end goal, I've settled on this implementation as one with the least resistance when integrated with existing usages of focus in o!f and osu!.
The approach taken here revolves around a property in the
Drawable
class returning a list of drawables that should gain/lose focus alongside the main drawable providing them (in my case, the main drawable class would beDropdown
, and it would override the property to return bothMenu
andDropdownHeader
->DropdownSearchBar
->TextBox
).Test coverage made here is pretty basic (showcasing how the feature can be utilised), but I aim to add more cases if the approach is agreed upon.