mirror of
https://git.sr.ht/~eliasnaur/gio
synced 2026-07-06 09:55:40 +00:00
io/router: convert pointerQueue.dropHandlers to pointerQueue.dropHandler
dropHandlers is mainly used for single tag removal except in one instance. In that case, simply use a loop. Signed-off-by: Pierre Curto <pierre.curto@gmail.com>
This commit is contained in:
+18
-18
@@ -264,7 +264,7 @@ func (q *pointerQueue) Frame(root *op.Ops, events *handlerEvents) {
|
|||||||
q.collectHandlers(&q.reader, events)
|
q.collectHandlers(&q.reader, events)
|
||||||
for k, h := range q.handlers {
|
for k, h := range q.handlers {
|
||||||
if !h.active {
|
if !h.active {
|
||||||
q.dropHandlers(nil, k)
|
q.dropHandler(nil, k)
|
||||||
delete(q.handlers, k)
|
delete(q.handlers, k)
|
||||||
}
|
}
|
||||||
if h.wantsGrab {
|
if h.wantsGrab {
|
||||||
@@ -278,7 +278,9 @@ func (q *pointerQueue) Frame(root *op.Ops, events *handlerEvents) {
|
|||||||
dropped := make([]event.Tag, 0, len(p.handlers)-1)
|
dropped := make([]event.Tag, 0, len(p.handlers)-1)
|
||||||
dropped = append(dropped, p.handlers[:i]...)
|
dropped = append(dropped, p.handlers[:i]...)
|
||||||
dropped = append(dropped, p.handlers[i+1:]...)
|
dropped = append(dropped, p.handlers[i+1:]...)
|
||||||
q.dropHandlers(events, dropped...)
|
for _, tag := range dropped {
|
||||||
|
q.dropHandler(events, tag)
|
||||||
|
}
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -291,22 +293,20 @@ func (q *pointerQueue) Frame(root *op.Ops, events *handlerEvents) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (q *pointerQueue) dropHandlers(events *handlerEvents, tags ...event.Tag) {
|
func (q *pointerQueue) dropHandler(events *handlerEvents, tag event.Tag) {
|
||||||
for _, k := range tags {
|
if events != nil {
|
||||||
if events != nil {
|
events.Add(tag, pointer.Event{Type: pointer.Cancel})
|
||||||
events.Add(k, pointer.Event{Type: pointer.Cancel})
|
}
|
||||||
}
|
for i := range q.pointers {
|
||||||
for i := range q.pointers {
|
p := &q.pointers[i]
|
||||||
p := &q.pointers[i]
|
for i := len(p.handlers) - 1; i >= 0; i-- {
|
||||||
for i := len(p.handlers) - 1; i >= 0; i-- {
|
if p.handlers[i] == tag {
|
||||||
if p.handlers[i] == k {
|
p.handlers = append(p.handlers[:i], p.handlers[i+1:]...)
|
||||||
p.handlers = append(p.handlers[:i], p.handlers[i+1:]...)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
for i := len(p.entered) - 1; i >= 0; i-- {
|
}
|
||||||
if p.entered[i] == k {
|
for i := len(p.entered) - 1; i >= 0; i-- {
|
||||||
p.entered = append(p.entered[:i], p.entered[i+1:]...)
|
if p.entered[i] == tag {
|
||||||
}
|
p.entered = append(p.entered[:i], p.entered[i+1:]...)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -328,7 +328,7 @@ func (q *pointerQueue) Push(e pointer.Event, events *handlerEvents) {
|
|||||||
if e.Type == pointer.Cancel {
|
if e.Type == pointer.Cancel {
|
||||||
q.pointers = q.pointers[:0]
|
q.pointers = q.pointers[:0]
|
||||||
for k := range q.handlers {
|
for k := range q.handlers {
|
||||||
q.dropHandlers(events, k)
|
q.dropHandler(events, k)
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user