textscreen: Fix jump when clicking on scrollbars.
Clicking on a scrollbar should scroll the cursor to that location, but the logic for it was buggy because of loss of precision when doing an integer divide. When dividing by bar_max, seek up to the nearest value so that the cursor always arrives where we clicked. Thanks to Alexandre-Xavier for reporting this bug. This fixes #359.
This commit is contained in:
parent
db9aee2beb
commit
242fa1ee46
1 changed files with 2 additions and 2 deletions
|
|
@ -487,7 +487,7 @@ static void TXT_ScrollPaneMousePress(TXT_UNCAST_ARG(scrollpane),
|
|||
int range = FullWidth(scrollpane) - scrollpane->w;
|
||||
int bar_max = scrollpane->w - 3;
|
||||
|
||||
scrollpane->x = ((rel_x - 1) * range + (bar_max / 2)) / bar_max;
|
||||
scrollpane->x = ((rel_x - 1) * range + bar_max - 1) / bar_max;
|
||||
}
|
||||
|
||||
return;
|
||||
|
|
@ -509,7 +509,7 @@ static void TXT_ScrollPaneMousePress(TXT_UNCAST_ARG(scrollpane),
|
|||
int range = FullHeight(scrollpane) - scrollpane->h;
|
||||
int bar_max = scrollpane->h - 3;
|
||||
|
||||
scrollpane->y = ((rel_y - 1) * range + (bar_max / 2)) / bar_max;
|
||||
scrollpane->y = ((rel_y - 1) * range + bar_max - 1) / bar_max;
|
||||
}
|
||||
|
||||
return;
|
||||
|
|
|
|||
Loading…
Reference in a new issue