(svn r6607) - Fix (r6601): Fix selection of refit type when the list is scrolled.

replace/41b28d7194a279bdc17475d4fbe2ea6ec885a466
peter1138 18 years ago
parent c1f29c5ab3
commit 8d5c98ee87

@ -294,14 +294,14 @@ static RefitOption *DrawVehicleRefitWindow(const RefitList *list, int sel, uint
uint i; uint i;
/* Draw the list, and find the selected cargo (by its position in list) */ /* Draw the list, and find the selected cargo (by its position in list) */
for (i = pos; i < num_lines && i < pos + rows; i++) { for (i = 0; i < num_lines; i++) {
byte colour = 16; byte colour = 16;
if (sel == 0) { if (sel == 0) {
selected = &refit[i]; selected = &refit[i];
colour = 12; colour = 12;
} }
if (i >= pos && y < rows * 10) { if (i >= pos && i < pos + rows) {
/* Draw the cargo name */ /* Draw the cargo name */
int last_x = DrawString(2, y, _cargoc.names_s[_local_cargo_id_ctype[refit[i].cargo]], colour); int last_x = DrawString(2, y, _cargoc.names_s[_local_cargo_id_ctype[refit[i].cargo]], colour);
@ -367,7 +367,7 @@ static void VehicleRefitWndProc(Window *w, WindowEvent *e)
case 3: { // listbox case 3: { // listbox
int y = e->we.click.pt.y - w->widget[3].top; int y = e->we.click.pt.y - w->widget[3].top;
if (y >= 0) { if (y >= 0) {
WP(w,refit_d).sel = y / (int)w->resize.step_height; WP(w,refit_d).sel = (y / (int)w->resize.step_height) + w->vscroll.pos;
SetWindowDirty(w); SetWindowDirty(w);
} }
} break; } break;

Loading…
Cancel
Save