ref: 286d2f7e3fe365426c559b5ff8b48573ad1ce5ba
parent: 8c68719b7a3b8c7e4a1db663e6d2802a220924c5
author: Philip Silva <philip.silva@protonmail.com>
date: Fri Dec 18 08:19:34 EST 2020
more generic version of ParentForm()
--- a/browser/browser.go
+++ b/browser/browser.go
@@ -285,7 +285,7 @@
Text: t,
Font: n.Font(),
Click: func() (r duit.Event) {- b.submit(n.ParentForm().DomSubtree)
+ b.submit(n.Ancestor("form").DomSubtree) return duit.Event{Consumed: true,
NeedLayout: true,
@@ -315,7 +315,7 @@
},
Keys: func(k rune, m draw.Mouse) (e duit.Event) { if k == 10 {- browser.submit(n.ParentForm().DomSubtree)
+ browser.submit(n.Ancestor("form").DomSubtree) return duit.Event{Consumed: true,
NeedLayout: true,
--- a/nodes/nodes.go
+++ b/nodes/nodes.go
@@ -75,15 +75,16 @@
return n.DomSubtree.Data
}
-func (n *Node) ParentForm() *Node {+// Ancestor of tag
+func (n *Node) Ancestor(tag string) *Node { log.Printf("<%v>.ParentForm()", n.DomSubtree.Data)- if n.DomSubtree.Data == "form" {- log.Printf(" I'm a form :-)")+ if n.DomSubtree.Data == tag {+ log.Printf(" I'm a %v :-)", tag)return n
}
if n.Parent != nil { log.Printf(" go to my parent")- return n.Parent.ParentForm()
+ return n.Parent.Ancestor(tag)
}
return nil
}
--
⑨