@@ -264,7 +264,7 @@ func (m Model) HelpView() string {
264
264
func (m * Model ) UpdateViewport () {
265
265
renderedRows := make ([]string , 0 , len (m .rows ))
266
266
267
- // Render only rows from: m.cursor-m.viewport.Height to: m.cursor+m.viewport.Height
267
+ // Render only rows from: m.cursor-( m.viewport.Height-1) to: m.cursor+m.viewport.Height
268
268
// Constant runtime, independent of number of rows in a table.
269
269
// Limits the number of renderedRows to a maximum of 2*m.viewport.Height
270
270
if m .cursor >= 0 {
@@ -351,14 +351,6 @@ func (m *Model) SetCursor(n int) {
351
351
// It can not go above the first row.
352
352
func (m * Model ) MoveUp (n int ) {
353
353
m .cursor = clamp (m .cursor - n , 0 , len (m .rows )- 1 )
354
- switch {
355
- case m .start == 0 :
356
- m .viewport .SetYOffset (clamp (m .viewport .YOffset , 0 , m .cursor ))
357
- case m .start < m .viewport .Height :
358
- m .viewport .YOffset = (clamp (clamp (m .viewport .YOffset + n , 0 , m .cursor ), 0 , m .viewport .Height ))
359
- case m .viewport .YOffset >= 1 :
360
- m .viewport .YOffset = clamp (m .viewport .YOffset + n , 1 , m .viewport .Height )
361
- }
362
354
m .UpdateViewport ()
363
355
}
364
356
@@ -367,16 +359,6 @@ func (m *Model) MoveUp(n int) {
367
359
func (m * Model ) MoveDown (n int ) {
368
360
m .cursor = clamp (m .cursor + n , 0 , len (m .rows )- 1 )
369
361
m .UpdateViewport ()
370
-
371
- switch {
372
- case m .end == len (m .rows ) && m .viewport .YOffset > 0 :
373
- m .viewport .SetYOffset (clamp (m .viewport .YOffset - n , 1 , m .viewport .Height ))
374
- case m .cursor > (m .end - m .start )/ 2 && m .viewport .YOffset > 0 :
375
- m .viewport .SetYOffset (clamp (m .viewport .YOffset - n , 1 , m .cursor ))
376
- case m .viewport .YOffset > 1 :
377
- case m .cursor > m .viewport .YOffset + m .viewport .Height - 1 :
378
- m .viewport .SetYOffset (clamp (m .viewport .YOffset + 1 , 0 , 1 ))
379
- }
380
362
}
381
363
382
364
// GotoTop moves the selection to the first row.
0 commit comments