summaryrefslogtreecommitdiffstats
path: root/Panel.c
diff options
context:
space:
mode:
Diffstat (limited to 'Panel.c')
-rw-r--r--Panel.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/Panel.c b/Panel.c
index 579a82cc..8c4d44fc 100644
--- a/Panel.c
+++ b/Panel.c
@@ -407,12 +407,13 @@ bool Panel_onKey(Panel* this, int key) {
break;
case KEY_PPAGE:
this->selected -= (this->h - 1);
- this->scrollV -= (this->h - 1);
+ this->scrollV = MAX(0, this->scrollV - this->h + 1);
this->needsRedraw = true;
break;
case KEY_NPAGE:
this->selected += (this->h - 1);
- this->scrollV = MIN(MAX(0, Vector_size(this->items) - this->h), this->selected - this->h);
+ this->scrollV = MAX(0, MIN(Vector_size(this->items) - this->h,
+ this->scrollV + this->h - 1));
this->needsRedraw = true;
break;
case KEY_WHEELUP: