From cba6eb87c2493e9d86d37db865bb85817d451c80 Mon Sep 17 00:00:00 2001
From: frosch <frosch@openttd.org>
Date: Sun, 13 Mar 2011 21:35:50 +0000
Subject: [PATCH] (svn r22249) -Codechange: Process some more invalidation of
 IDs during command scope.

---
 src/ai/ai_gui.cpp | 3 ++-
 src/fios_gui.cpp  | 3 ++-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/ai/ai_gui.cpp b/src/ai/ai_gui.cpp
index e7b704e5c7..edbd9652c9 100644
--- a/src/ai/ai_gui.cpp
+++ b/src/ai/ai_gui.cpp
@@ -711,11 +711,12 @@ struct AIConfigWindow : public Window {
 	 */
 	virtual void OnInvalidateData(int data = 0, bool gui_scope = true)
 	{
-		if (!gui_scope) return;
 		if (!IsEditable(this->selected_slot)) {
 			this->selected_slot = INVALID_COMPANY;
 		}
 
+		if (!gui_scope) return;
+
 		this->SetWidgetDisabledState(AIC_WIDGET_DECREASE, GetGameSettings().difficulty.max_no_competitors == 0);
 		this->SetWidgetDisabledState(AIC_WIDGET_INCREASE, GetGameSettings().difficulty.max_no_competitors == MAX_COMPANIES - 1);
 		this->SetWidgetDisabledState(AIC_WIDGET_CHANGE, this->selected_slot == INVALID_COMPANY);
diff --git a/src/fios_gui.cpp b/src/fios_gui.cpp
index c871678829..3b97b420b2 100644
--- a/src/fios_gui.cpp
+++ b/src/fios_gui.cpp
@@ -666,16 +666,17 @@ public:
 	 */
 	virtual void OnInvalidateData(int data = 0, bool gui_scope = true)
 	{
-		if (!gui_scope) return;
 		switch (data) {
 			case 0:
 				/* Rescan files */
 				this->selected = NULL;
 				_load_check_data.Clear();
+				if (!gui_scope) break;
 				BuildFileList();
 				/* FALL THROUGH */
 			case 1:
 				/* Selection changes */
+				if (!gui_scope) break;
 				if (_saveload_mode == SLD_LOAD_GAME || _saveload_mode == SLD_LOAD_SCENARIO) {
 					this->SetWidgetDisabledState(SLWW_LOAD_BUTTON,
 							this->selected == NULL || _load_check_data.HasErrors() || !(_load_check_data.grf_compatibility != GLC_NOT_FOUND || _settings_client.gui.UserIsAllowedToChangeNewGRFs()));