Window attempts to advance child's selection on alt-tab

This commit is contained in:
2023-01-11 18:32:02 -05:00
parent 507217a9da
commit 80c0a6be71
2 changed files with 34 additions and 10 deletions

View File

@@ -66,11 +66,34 @@ func (window *Window) handleKeyPress (
NumberPad: numberPad,
}
window.child.Handle (tomo.EventKeyDown {
keyDownEvent := tomo.EventKeyDown {
Key: key,
Modifiers: modifiers,
Repeated: false, // FIXME: return correct value here
})
}
if keyDownEvent.Key == tomo.KeyTab && keyDownEvent.Modifiers.Alt {
if window.child.Selectable() {
direction := 1
if keyDownEvent.Modifiers.Shift {
direction = -1
}
window.advanceSelectionInChild(direction)
}
} else {
window.child.Handle(event)
}
}
func (window *Window) advanceSelectionInChild (direction int) {
if window.child.Selected() {
if !window.child.AdvanceSelection(direction) {
window.child.Handle(tomo.EventDeselect { })
}
} else {
window.child.Handle(tomo.EventSelect { })
}
}
func (window *Window) handleKeyRelease (