widget: introduce Editor.moveLines

Signed-off-by: Elias Naur <mail@eliasnaur.com>
This commit is contained in:
Elias Naur
2020-06-20 13:23:39 +02:00
parent ef21a7ace1
commit dcbbcbb543
+6 -2
View File
@@ -209,6 +209,10 @@ func (e *Editor) processKey(gtx layout.Context) {
} }
} }
func (e *Editor) moveLines(distance int) {
e.caret.xoff = e.moveToLine(e.caret.x+e.caret.xoff, e.caret.line+distance)
}
func (e *Editor) command(k key.Event) bool { func (e *Editor) command(k key.Event) bool {
switch k.Name { switch k.Name {
case key.NameReturn, key.NameEnter: case key.NameReturn, key.NameEnter:
@@ -218,9 +222,9 @@ func (e *Editor) command(k key.Event) bool {
case key.NameDeleteForward: case key.NameDeleteForward:
e.Delete(1) e.Delete(1)
case key.NameUpArrow: case key.NameUpArrow:
e.caret.xoff = e.moveToLine(e.caret.x+e.caret.xoff, e.caret.line-1) e.moveLines(-1)
case key.NameDownArrow: case key.NameDownArrow:
e.caret.xoff = e.moveToLine(e.caret.x+e.caret.xoff, e.caret.line+1) e.moveLines(+1)
case key.NameLeftArrow: case key.NameLeftArrow:
e.Move(-1) e.Move(-1)
case key.NameRightArrow: case key.NameRightArrow: