mirror of
https://git.sr.ht/~eliasnaur/gio
synced 2026-07-07 10:25:37 +00:00
io/router: don't clear event queue before cancel events
There may be unrelated events in the queue, so it's not appropriate to clear the queue just because an input Cancel event occurs. Signed-off-by: Elias Naur <mail@eliasnaur.com>
This commit is contained in:
+1
-1
@@ -116,7 +116,7 @@ loop:
|
|||||||
h = new(keyHandler)
|
h = new(keyHandler)
|
||||||
q.handlers[op.Tag] = h
|
q.handlers[op.Tag] = h
|
||||||
// Reset the handler on (each) first appearance.
|
// Reset the handler on (each) first appearance.
|
||||||
events.Set(op.Tag, []event.Event{key.FocusEvent{Focus: false}})
|
events.Add(op.Tag, key.FocusEvent{Focus: false})
|
||||||
}
|
}
|
||||||
h.active = true
|
h.active = true
|
||||||
case opconst.TypeHideInput:
|
case opconst.TypeHideInput:
|
||||||
|
|||||||
@@ -104,7 +104,7 @@ func (q *pointerQueue) collectHandlers(r *ops.Reader, events *handlerEvents, t o
|
|||||||
if !ok {
|
if !ok {
|
||||||
h = new(pointerHandler)
|
h = new(pointerHandler)
|
||||||
q.handlers[op.Tag] = h
|
q.handlers[op.Tag] = h
|
||||||
events.Set(op.Tag, []event.Event{pointer.Event{Type: pointer.Cancel}})
|
events.Add(op.Tag, pointer.Event{Type: pointer.Cancel})
|
||||||
}
|
}
|
||||||
h.active = true
|
h.active = true
|
||||||
h.area = area
|
h.area = area
|
||||||
|
|||||||
@@ -137,12 +137,6 @@ func (h *handlerEvents) init() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (h *handlerEvents) Set(k event.Tag, evts []event.Event) {
|
|
||||||
h.init()
|
|
||||||
h.handlers[k] = evts
|
|
||||||
h.hadEvents = true
|
|
||||||
}
|
|
||||||
|
|
||||||
func (h *handlerEvents) Add(k event.Tag, e event.Event) {
|
func (h *handlerEvents) Add(k event.Tag, e event.Event) {
|
||||||
h.init()
|
h.init()
|
||||||
h.handlers[k] = append(h.handlers[k], e)
|
h.handlers[k] = append(h.handlers[k], e)
|
||||||
|
|||||||
Reference in New Issue
Block a user