mirror of
https://git.sr.ht/~eliasnaur/gio
synced 2026-07-01 07:35:40 +00:00
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>
This commit is contained in:
committed by
Elias Naur
parent
dbf6429026
commit
e37deed8bb
@@ -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)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user