all: [API] replace tag parameter of Source.Event with per-filter tags

Until now, every event has had a particular target. We're about to simplify
key event delivery to match the first matching filter, so there is no
longer a global meaning to the tag argument to Source.Event.

Add fields to filters to specify their target tags.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
This commit is contained in:
Elias Naur
2023-11-26 12:58:10 -06:00
parent 496fc3cc82
commit d9a007586c
16 changed files with 195 additions and 115 deletions
+4 -4
View File
@@ -35,7 +35,7 @@ func TestDraggable(t *testing.T) {
stack.Pop()
drag.Update(gtx)
r.Event(tgt, transfer.TargetFilter{Type: drag.Type})
r.Event(transfer.TargetFilter{Target: tgt, Type: drag.Type})
r.Frame(gtx.Ops)
r.Queue(
pointer.Event{
@@ -53,10 +53,10 @@ func TestDraggable(t *testing.T) {
)
ofr := &offer{data: "hello"}
drag.Update(gtx)
r.Event(tgt, transfer.TargetFilter{Type: drag.Type})
r.Event(transfer.TargetFilter{Target: tgt, Type: drag.Type})
drag.Offer(gtx, "file", ofr)
e, ok := r.Event(tgt, transfer.TargetFilter{Type: drag.Type})
e, ok := r.Event(transfer.TargetFilter{Target: tgt, Type: drag.Type})
if !ok {
t.Fatalf("expected event")
}
@@ -67,7 +67,7 @@ func TestDraggable(t *testing.T) {
if ofr.closed {
t.Error("offer closed prematurely")
}
e, ok = r.Event(tgt, transfer.TargetFilter{Type: drag.Type})
e, ok = r.Event(transfer.TargetFilter{Target: tgt, Type: drag.Type})
if !ok {
t.Fatalf("expected event")
}