From 8a91f18058d8c903cfd13beb8669c03a2c8bdb03 Mon Sep 17 00:00:00 2001 From: peter1138 Date: Thu, 30 Nov 2006 18:23:25 +0000 Subject: (svn r7304) -Codechange: Reinstate caching of sorted purchase list. Dropping from 9m to 1.5m cycles for a redraw of a full list is not frivolous. --- train_gui.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/train_gui.c b/train_gui.c index e03c77743..1e610c7e7 100644 --- a/train_gui.c +++ b/train_gui.c @@ -447,7 +447,6 @@ static void DrawTrainBuildWindow(Window *w) uint16 scrollcount = 0; SetWindowWidgetDisabledState(w, BUILD_TRAIN_WIDGET_BUILD, w->window_number == 0); // Disable unless we got a depot to build in - GenerateBuildList(w); /* Make sure that the selected engine is still in the list*/ if (bv->sel_engine != INVALID_ENGINE) { @@ -493,9 +492,11 @@ static void NewRailVehicleWndProc(Window *w, WindowEvent *e) bv->sel_engine = INVALID_ENGINE; bv->sort_criteria = _last_sort_criteria; bv->descending_sort_order = _last_sort_order; + GenerateBuildList(w); break; case WE_INVALIDATE_DATA: + GenerateBuildList(w); SetWindowDirty(w); break; @@ -511,6 +512,7 @@ static void NewRailVehicleWndProc(Window *w, WindowEvent *e) switch (e->we.click.widget) { case BUILD_TRAIN_WIDGET_SORT_ASCENDING_DESCENDING: _last_sort_order = bv->descending_sort_order = !bv->descending_sort_order; + GenerateBuildList(w); SetWindowDirty(w); break; @@ -557,8 +559,9 @@ static void NewRailVehicleWndProc(Window *w, WindowEvent *e) if (bv->sort_criteria != e->we.dropdown.index) { bv->sort_criteria = e->we.dropdown.index; _last_sort_criteria = e->we.dropdown.index; + GenerateBuildList(w); + SetWindowDirty(w); } - SetWindowDirty(w); break; case WE_RESIZE: { -- cgit v1.2.3-70-g09d2