Mouse scrolling to the end turns tracking on. Resolves #945

This commit is contained in:
Oliver 2024-03-07 18:14:13 +01:00
parent e350bef1f9
commit e4a85fc779
1 changed files with 10 additions and 1 deletions

View File

@ -1371,6 +1371,7 @@ func (t *TextView) MouseHandler() func(action MouseAction, event *tcell.EventMou
return false, nil return false, nil
} }
rectX, rectY, width, height := t.GetInnerRect()
switch action { switch action {
case MouseLeftDown: case MouseLeftDown:
setFocus(t) setFocus(t)
@ -1378,7 +1379,6 @@ func (t *TextView) MouseHandler() func(action MouseAction, event *tcell.EventMou
case MouseLeftClick: case MouseLeftClick:
if t.regionTags { if t.regionTags {
// Find a region to highlight. // Find a region to highlight.
rectX, rectY, _, _ := t.GetInnerRect()
x -= rectX x -= rectX
y -= rectY y -= rectY
var highlightedID string var highlightedID string
@ -1404,6 +1404,15 @@ func (t *TextView) MouseHandler() func(action MouseAction, event *tcell.EventMou
consumed = true consumed = true
case MouseScrollDown: case MouseScrollDown:
t.lineOffset++ t.lineOffset++
if len(t.lineIndex)-t.lineOffset < height {
// If we scroll to the end, turn on tracking.
t.parseAhead(width, func(lineNumber int, line *textViewLine) bool {
return len(t.lineIndex)-t.lineOffset < height
})
if len(t.lineIndex)-t.lineOffset < height {
t.trackEnd = true
}
}
consumed = true consumed = true
} }