mirror of https://github.com/xzeldon/htop.git
Fix panel inconsistency that could lead to crashes. Closes #2422267.
This commit is contained in:
parent
978019d34f
commit
5a8307a10b
11
Panel.c
11
Panel.c
|
@ -238,18 +238,11 @@ void Panel_setSelected(Panel* this, int selected) {
|
||||||
void Panel_draw(Panel* this, bool focus) {
|
void Panel_draw(Panel* this, bool focus) {
|
||||||
assert (this != NULL);
|
assert (this != NULL);
|
||||||
|
|
||||||
int first, last;
|
|
||||||
int itemCount = Vector_size(this->items);
|
int itemCount = Vector_size(this->items);
|
||||||
int scrollH = this->scrollH;
|
int scrollH = this->scrollH;
|
||||||
int y = this->y; int x = this->x;
|
int y = this->y; int x = this->x;
|
||||||
first = this->scrollV;
|
int first = this->scrollV;
|
||||||
|
int last = MIN(itemCount, this->scrollV + MIN(itemCount, this->h));
|
||||||
if (this->h > itemCount) {
|
|
||||||
last = this->scrollV + itemCount;
|
|
||||||
move(y + last, x + 0);
|
|
||||||
} else {
|
|
||||||
last = MIN(itemCount, this->scrollV + this->h);
|
|
||||||
}
|
|
||||||
if (this->selected < first) {
|
if (this->selected < first) {
|
||||||
first = this->selected;
|
first = this->selected;
|
||||||
this->scrollV = first;
|
this->scrollV = first;
|
||||||
|
|
Loading…
Reference in New Issue