diff --git a/src/newgrf_gui.cpp b/src/newgrf_gui.cpp index 9978a2f159..faadf4dcb0 100644 --- a/src/newgrf_gui.cpp +++ b/src/newgrf_gui.cpp @@ -511,7 +511,7 @@ enum ShowNewGRFStateWidgets { /** * Window for showing NewGRF files */ -struct NewGRFWindow : public QueryStringBaseWindow { +struct NewGRFWindow : public QueryStringBaseWindow, NewGRFScanCallback { typedef GUIList GUIGRFConfigList; static const uint EDITBOX_MAX_SIZE = 50; @@ -985,15 +985,19 @@ struct NewGRFWindow : public QueryStringBaseWindow { case SNGRFS_RESCAN_FILES: case SNGRFS_RESCAN_FILES2: TarScanner::DoScan(); - ScanNewGRFFiles(); - this->avail_sel = NULL; - this->avail_pos = -1; - this->avails.ForceRebuild(); - this->DeleteChildWindows(WC_QUERY_STRING); // Remove the parameter query window + ScanNewGRFFiles(this); break; } } + virtual void OnNewGRFsScanned() + { + this->avail_sel = NULL; + this->avail_pos = -1; + this->avails.ForceRebuild(); + this->DeleteChildWindows(WC_QUERY_STRING); // Remove the parameter query window + } + virtual void OnDropdownSelect(int widget, int index) { if (!this->editable) return;