|
|
|
@ -287,13 +287,26 @@ func (this *Hierarchy) considerMaskingParents (box anyBox) anyBox {
|
|
|
|
return box
|
|
|
|
return box
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
func (this *Hierarchy) isMasked (box anyBox) bool {
|
|
|
|
|
|
|
|
parent := box.getParent()
|
|
|
|
|
|
|
|
for {
|
|
|
|
|
|
|
|
parentBox, ok := parent.(anyBox)
|
|
|
|
|
|
|
|
if !ok { break }
|
|
|
|
|
|
|
|
if parent.masks() {
|
|
|
|
|
|
|
|
return true
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
parent = parentBox.getParent()
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return false
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
func (this *Hierarchy) focusNext () {
|
|
|
|
func (this *Hierarchy) focusNext () {
|
|
|
|
found := !this.anyFocused()
|
|
|
|
found := !this.anyFocused()
|
|
|
|
focused := false
|
|
|
|
focused := false
|
|
|
|
this.propagateAlt(func (box anyBox) bool {
|
|
|
|
this.propagateAlt(func (box anyBox) bool {
|
|
|
|
if found {
|
|
|
|
if found {
|
|
|
|
// looking for the next box to select
|
|
|
|
// looking for the next box to select
|
|
|
|
if box.canBeFocused() {
|
|
|
|
if box.canBeFocused() && !this.isMasked(box) {
|
|
|
|
// found it
|
|
|
|
// found it
|
|
|
|
this.focus(box)
|
|
|
|
this.focus(box)
|
|
|
|
focused = true
|
|
|
|
focused = true
|
|
|