2 Commits

Author SHA1 Message Date
192e6c6235 Keynav skips masked boxes 2024-07-26 20:49:10 -04:00
9729e3dfda Fix selectable detection when using keys on TextBox 2024-07-26 20:48:44 -04:00
2 changed files with 17 additions and 4 deletions

View File

@@ -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)

View File

@@ -290,7 +290,7 @@ func (this *textBox) runeUnderMouse () int {
func (this *textBox) handleKeyDown (key input.Key, numberPad bool) bool {
if this.box.handleKeyDown(key, numberPad) { return true }
if this.selectable { return false }
if !this.selectable { return false }
// because fuck you thats why!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
modifiers := this.Window().Modifiers()
@@ -334,7 +334,7 @@ func (this *textBox) handleKeyDown (key input.Key, numberPad bool) bool {
func (this *textBox) handleKeyUp (key input.Key, numberPad bool) bool {
if this.box.handleKeyUp(key, numberPad) { return true }
if this.selectable { return false }
if !this.selectable { return false }
modifiers := this.Window().Modifiers()
switch {