-
-
Notifications
You must be signed in to change notification settings - Fork 3.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Picking out order #16231
Picking out order #16231
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Really excellent docs. I'd love to have some tests to verify that order, but that's a ton of extra work and I won't block on it.
ooh good idea. I think this will make sense to do as part of the next winit upgrade, because the way this pointer stuff interacts with their pointer stuff will be complex and not entirely owned by us. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The comment on pointer presses might be wrong? I think it should say down/click/up
. Apart from that the ordering explained at the beginning looks consistent with the code.
Btw, great docs 👍
@NthTensor could you look into the conflict and fixing the order in the comment? |
Yep, thanks for the poke. |
4b5135f
to
61700ff
Compare
Tweaks picking docs slightly for formatting and to add additional context about the ordering of
Over
andOut
events. Also shiftsOut
to trigger beforeOver
in the global event ordering.Because of how focus is tracked, we must send all
Over
andOut
events at the same time, in a block. Originally I hadOver
precedeOut
in the global event order, because this seemed natural. However, the effect of this, when a pointer moves between entities, is to have the new entity receiveOver
before the old entity receivedOut
, which several users found confusing.The new ordering (out before over globally, over before out locally per entity) should make it much easier to write hover state cleanup code.