mirror of
https://git.sr.ht/~eliasnaur/gio
synced 2026-07-01 07:35:40 +00:00
Revert "io/router: try all handlers if a key don't match the focus ancestor tree"
This reverts commit 28c206fc78. The commit
introduced counter-intuitive behaviour as demonstrated by #503. In the
meantime, topmost handlers now receive all unhandled key.Events[0], which
should cover the use-cases that motivated the original commit.
[0] https://gioui.org/commit/0dba85f52e5131c03d903c84355fb90cdb978811
Fixes: https://todo.sr.ht/~eliasnaur/gio/503
Signed-off-by: Elias Naur <mail@eliasnaur.com>
This commit is contained in:
@@ -363,11 +363,11 @@ func TestKeyRouting(t *testing.T) {
|
||||
r2.Queue(A, B)
|
||||
|
||||
// With focus, the events should traverse the branch of the hit tree
|
||||
// containing the focused element, and then every handler.
|
||||
// containing the focused element.
|
||||
assertKeyEvent(t, r2.Events(&handlers[4]), false)
|
||||
assertKeyEvent(t, r2.Events(&handlers[3]), true)
|
||||
assertKeyEvent(t, r2.Events(&handlers[2]), false)
|
||||
assertKeyEvent(t, r2.Events(&handlers[1]), false, B)
|
||||
assertKeyEvent(t, r2.Events(&handlers[1]), false)
|
||||
assertKeyEvent(t, r2.Events(&handlers[0]), false, A)
|
||||
}
|
||||
|
||||
|
||||
@@ -221,12 +221,6 @@ func (q *Router) queueKeyEvent(e key.Event) {
|
||||
n := &pq.hitTree[idx]
|
||||
if focused {
|
||||
idx = n.next
|
||||
if idx == -1 {
|
||||
// No handler found in focus ancestor tree.
|
||||
// Try all handlers.
|
||||
idx = len(pq.hitTree) - 1
|
||||
focused = false
|
||||
}
|
||||
} else {
|
||||
idx--
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user