~eliasnaur/gio

e37deed8bbdbe37124e5c68489dd7dc97468fcd2 — Dominik Honnef 8 months ago dbf6429
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)
		}