Keynav skips masked boxes
This commit is contained in:
parent
9729e3dfda
commit
192e6c6235
@ -287,13 +287,26 @@ func (this *Hierarchy) considerMaskingParents (box anyBox) anyBox {
|
||||
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 () {
|
||||
found := !this.anyFocused()
|
||||
focused := false
|
||||
this.propagateAlt(func (box anyBox) bool {
|
||||
if found {
|
||||
// looking for the next box to select
|
||||
if box.canBeFocused() {
|
||||
if box.canBeFocused() && !this.isMasked(box) {
|
||||
// found it
|
||||
this.focus(box)
|
||||
focused = true
|
||||
@ -318,7 +331,7 @@ func (this *Hierarchy) focusPrevious () {
|
||||
if box == this.focused {
|
||||
return false
|
||||
}
|
||||
if box.canBeFocused() { behind = box }
|
||||
if box.canBeFocused() && !this.isMasked(box) { behind = box }
|
||||
return true
|
||||
})
|
||||
this.focus(behind)
|
||||
|
Loading…
Reference in New Issue
Block a user