|
|
@ -1337,8 +1337,8 @@ func (t *Table) InputHandler() func(event *tcell.EventKey, setFocus func(p Primi
|
|
|
|
}
|
|
|
|
}
|
|
|
|
var (
|
|
|
|
var (
|
|
|
|
previous = func() {
|
|
|
|
previous = func() {
|
|
|
|
startRow := t.selectedRow
|
|
|
|
startRow, previousRow := t.selectedRow, t.selectedRow
|
|
|
|
startColumn := t.selectedColumn
|
|
|
|
startColumn, previousColumn := t.selectedColumn, t.selectedColumn
|
|
|
|
for {
|
|
|
|
for {
|
|
|
|
cell := t.content.GetCell(t.selectedRow, t.selectedColumn)
|
|
|
|
cell := t.content.GetCell(t.selectedRow, t.selectedColumn)
|
|
|
|
if cell != nil && !cell.NotSelectable {
|
|
|
|
if cell != nil && !cell.NotSelectable {
|
|
|
@ -1346,10 +1346,18 @@ func (t *Table) InputHandler() func(event *tcell.EventKey, setFocus func(p Primi
|
|
|
|
}
|
|
|
|
}
|
|
|
|
t.selectedColumn--
|
|
|
|
t.selectedColumn--
|
|
|
|
if t.selectedColumn < 0 {
|
|
|
|
if t.selectedColumn < 0 {
|
|
|
|
t.selectedColumn = lastColumn
|
|
|
|
if t.wrapHorizontally {
|
|
|
|
t.selectedRow--
|
|
|
|
t.selectedColumn = lastColumn
|
|
|
|
if t.selectedRow < 0 {
|
|
|
|
t.selectedRow--
|
|
|
|
t.selectedRow = rowCount - 1
|
|
|
|
if t.selectedRow < 0 {
|
|
|
|
|
|
|
|
if t.wrapVertically {
|
|
|
|
|
|
|
|
t.selectedRow = rowCount - 1
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
t.selectedRow = 0
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
t.selectedColumn = 0
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if t.selectedColumn == startColumn && t.selectedRow == startRow {
|
|
|
|
if t.selectedColumn == startColumn && t.selectedRow == startRow {
|
|
|
@ -1357,12 +1365,16 @@ func (t *Table) InputHandler() func(event *tcell.EventKey, setFocus func(p Primi
|
|
|
|
t.selectedRow = 0
|
|
|
|
t.selectedRow = 0
|
|
|
|
return
|
|
|
|
return
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if t.selectedColumn == previousColumn && t.selectedRow == previousRow {
|
|
|
|
|
|
|
|
return
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
previousRow, previousColumn = t.selectedRow, t.selectedColumn
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
next = func() {
|
|
|
|
next = func() {
|
|
|
|
startRow := t.selectedRow
|
|
|
|
startRow, previousRow := t.selectedRow, t.selectedRow
|
|
|
|
startColumn := t.selectedColumn
|
|
|
|
startColumn, previousColumn := t.selectedColumn, t.selectedColumn
|
|
|
|
for {
|
|
|
|
for {
|
|
|
|
if t.selectedColumn <= lastColumn {
|
|
|
|
if t.selectedColumn <= lastColumn {
|
|
|
|
cell := t.content.GetCell(t.selectedRow, t.selectedColumn)
|
|
|
|
cell := t.content.GetCell(t.selectedRow, t.selectedColumn)
|
|
|
@ -1370,21 +1382,33 @@ func (t *Table) InputHandler() func(event *tcell.EventKey, setFocus func(p Primi
|
|
|
|
return
|
|
|
|
return
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if t.selectedColumn >= lastColumn {
|
|
|
|
if t.selectedColumn < lastColumn {
|
|
|
|
t.selectedColumn = 0
|
|
|
|
t.selectedColumn++
|
|
|
|
if t.selectedRow >= rowCount-1 {
|
|
|
|
} else {
|
|
|
|
t.selectedRow = 0
|
|
|
|
if t.wrapHorizontally {
|
|
|
|
|
|
|
|
t.selectedColumn = 0
|
|
|
|
|
|
|
|
if t.selectedRow >= rowCount-1 {
|
|
|
|
|
|
|
|
if t.wrapVertically {
|
|
|
|
|
|
|
|
t.selectedRow = 0
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
t.selectedRow = rowCount - 1
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
t.selectedRow++
|
|
|
|
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
t.selectedRow++
|
|
|
|
t.selectedColumn = lastColumn
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
|
|
|
|
t.selectedColumn++
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if t.selectedColumn == startColumn && t.selectedRow == startRow {
|
|
|
|
if t.selectedColumn == startColumn && t.selectedRow == startRow {
|
|
|
|
t.selectedColumn = 0
|
|
|
|
t.selectedColumn = 0
|
|
|
|
t.selectedRow = 0
|
|
|
|
t.selectedRow = 0
|
|
|
|
return
|
|
|
|
return
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if t.selectedColumn == previousColumn && t.selectedRow == previousRow {
|
|
|
|
|
|
|
|
return
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
previousRow, previousColumn = t.selectedRow, t.selectedColumn
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|