diff options
Diffstat (limited to 'Panel.c')
-rw-r--r-- | Panel.c | 5 |
1 files changed, 3 insertions, 2 deletions
@@ -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: |