This was deliberately left out of the 0.5.0 release but it's quickly becoming difficult to get non-trivial transform-based UIs working without it.
For now, using this issue as a quick place to take notes pending implementation. Things that probably need to be done:
- Transform points during
DispatchPointerEvent. Since these points propagate down the hierarchy, I think we can ignore the whole matrix transform system and just apply the local transform to each point, since each view knows its own transform and each coordinate is given to that view in its own local space.
- Transform points during focus searches. Same rule as above should work.
- Find some way to notify the
ViewMenu to refocus during/after transitions, or maybe have some system to bypass the previous rule... it's complicated, need a way to land the gamepad cursor in the right place when scrolling entire pages left or right, without making this look extremely weird to the user, e.g. by having the cursor jumping around each frame.
- Don't dispatch pointer events outside the clip region. If it's not drawable, then it doesn't really make sense to be interactable.
- Similarly, ignore (early-terminate) focus searches outside the clip region.
- Transform points along the hover/tooltip path as well, which seems to be follow different logic and does not even honor
pointer-events-enabled right now.
This is pretty much the bare minimum to avoid unwanted interactions with transformed content. There may be more rules or steps to add later.
This was deliberately left out of the 0.5.0 release but it's quickly becoming difficult to get non-trivial transform-based UIs working without it.
For now, using this issue as a quick place to take notes pending implementation. Things that probably need to be done:
DispatchPointerEvent. Since these points propagate down the hierarchy, I think we can ignore the whole matrix transform system and just apply the local transform to each point, since each view knows its own transform and each coordinate is given to that view in its own local space.ViewMenuto refocus during/after transitions, or maybe have some system to bypass the previous rule... it's complicated, need a way to land the gamepad cursor in the right place when scrolling entire pages left or right, without making this look extremely weird to the user, e.g. by having the cursor jumping around each frame.pointer-events-enabledright now.This is pretty much the bare minimum to avoid unwanted interactions with transformed content. There may be more rules or steps to add later.