mirror of https://github.com/OpenTTD/OpenTTD.git
(svn r7373) -Codechange: when removing a GRF from the list, make the next one selected, or the previous file if the last item is being removed. This makes clearing the list easier.
This commit is contained in:
parent
9218fc16e6
commit
cc2c2a0fb1
13
newgrf_gui.c
13
newgrf_gui.c
|
@ -331,15 +331,24 @@ static void NewGRFWndProc(Window *w, WindowEvent *e)
|
|||
}
|
||||
|
||||
case 4: { /* Remove GRF */
|
||||
GRFConfig **pc, *c;
|
||||
GRFConfig **pc, *c, *newsel;
|
||||
|
||||
/* Choose the next GRF file to be the selected file */
|
||||
newsel = WP(w, newgrf_d).sel->next;
|
||||
|
||||
for (pc = WP(w, newgrf_d).list; (c = *pc) != NULL; pc = &c->next) {
|
||||
/* If the new selection is empty (i.e. we're deleting the last item
|
||||
* in the list, pick the file just before the selected file */
|
||||
if (newsel == NULL && c->next == WP(w, newgrf_d).sel) newsel = c;
|
||||
|
||||
if (c == WP(w, newgrf_d).sel) {
|
||||
*pc = c->next;
|
||||
free(c);
|
||||
break;
|
||||
}
|
||||
}
|
||||
WP(w, newgrf_d).sel = NULL;
|
||||
|
||||
WP(w, newgrf_d).sel = newsel;
|
||||
SetupNewGRFWindow(w);
|
||||
SetWindowDirty(w);
|
||||
break;
|
||||
|
|
Loading…
Reference in New Issue