From e37deed8bbdbe37124e5c68489dd7dc97468fcd2 Mon Sep 17 00:00:00 2001 From: Dominik Honnef Date: Sat, 10 Sep 2022 11:44:22 +0200 Subject: [PATCH] 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 --- io/router/pointer.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/io/router/pointer.go b/io/router/pointer.go index 5d6d6296..e95bc6e7 100644 --- a/io/router/pointer.go +++ b/io/router/pointer.go @@ -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) }