commit dfc1d240864e4b31fed0d15b829dc86a45b808c5 from: Stefan Sperling date: Thu May 10 12:44:11 2018 UTC improve selection behaviour for page-up/down scrolling commit - 80ee46039aad5490fab4f020f562d807f8e9f6b4 commit + dfc1d240864e4b31fed0d15b829dc86a45b808c5 blob - 7f8c1b8136bc76376e52533c1c368364ac8da0d8 blob + d8bdfb1478a2cc082beeb058cb703b14a959463c --- tog/tog.c +++ tog/tog.c @@ -611,9 +611,13 @@ show_log_view(struct got_object_id *start_id, struct g scroll_up(&first_displayed_entry, 1, &commits); break; case KEY_PPAGE: + if (TAILQ_FIRST(&commits) == + first_displayed_entry) { + selected = 0; + break; + } scroll_up(&first_displayed_entry, LINES, &commits); - selected = 0; break; case 'j': case KEY_DOWN: @@ -631,13 +635,19 @@ show_log_view(struct got_object_id *start_id, struct g break; case KEY_NPAGE: nparents = num_parents(first_displayed_entry); + if (nparents < LINES - 1 && + selected < nparents - 1) { + selected = nparents - 1; + break; + } err = scroll_down(&first_displayed_entry, MIN(nparents, LINES), last_displayed_entry, &commits, repo); if (err) goto done; nparents = num_parents(first_displayed_entry); - selected = MIN(nparents, LINES) - 1; + if (selected > nparents) + selected = nparents - 1; break; case KEY_RESIZE: if (selected > LINES)