Skip to content

Transform pointer events #86

@focustense

Description

@focustense

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions