io/router: fix pointer positions of Enter and Leave events for nested areas Before this change, inverse transformations of pointer positions would stack up, leading to incorrect positions when an enter or leave event was delivered to multiple areas. Signed-off-by: Dominik Honnef <dominik@honnef.co>
1 files changed, 2 insertions(+), 0 deletions(-) M io/router/pointer.go
M io/router/pointer.go => io/router/pointer.go +2 -0
@@ 779,6 779,7 @@ func (q *pointerQueue) deliverEnterLeaveEvents(p *pointerInfo, events *handlerEv e.Type = pointer.Leave if e.Type&h.types != 0 { e := e e.Position = q.invTransform(h.area, e.Position) events.Add(k, e) @@ } 792,6 793,7 @@ func (q *pointerQueue) deliverEnterLeaveEvents(p *pointerInfo, events *handlerEv e.Type = pointer.Enter if e.Type&h.types != 0 { e := e e.Position = q.invTransform(h.area, e.Position) events.Add(k, e) }