diff options
author | yexo <yexo@openttd.org> | 2011-05-27 18:02:55 +0000 |
---|---|---|
committer | yexo <yexo@openttd.org> | 2011-05-27 18:02:55 +0000 |
commit | ffdfa5a213719a1167ae4a9953a1026ba02848e1 (patch) | |
tree | ba82f4874469431b39c77221d693f52b79aa94a5 /src | |
parent | 56902191e47f863f21f462b9469996371e6ca8f0 (diff) | |
download | openttd-ffdfa5a213719a1167ae4a9953a1026ba02848e1.tar.xz |
(svn r22499) -Fix: don't lower the arrow buttons in the newgrf/AI parameter windows if they're clicked when disabled
Diffstat (limited to 'src')
-rw-r--r-- | src/ai/ai_gui.cpp | 15 | ||||
-rw-r--r-- | src/newgrf_gui.cpp | 12 |
2 files changed, 16 insertions, 11 deletions
diff --git a/src/ai/ai_gui.cpp b/src/ai/ai_gui.cpp index 8c552a804..08d332ebf 100644 --- a/src/ai/ai_gui.cpp +++ b/src/ai/ai_gui.cpp @@ -390,6 +390,7 @@ struct AISettingsWindow : public Window { /* One of the arrows is clicked (or green/red rect in case of bool value) */ if (IsInsideMM(x, 0, 21)) { int new_val = this->ai_config->GetSetting(config_item.name); + int old_val = new_val; if (bool_item) { new_val = !new_val; } else if (x >= 10) { @@ -404,19 +405,21 @@ struct AISettingsWindow : public Window { this->clicked_increase = false; } - this->ai_config->SetSetting(config_item.name, new_val); - this->clicked_button = num; - this->timeout = 5; + if (new_val != old_val) { + this->ai_config->SetSetting(config_item.name, new_val); + this->clicked_button = num; + this->timeout = 5; - this->CheckDifficultyLevel(); + this->CheckDifficultyLevel(); + + this->SetDirty(); + } } else if (!bool_item) { /* Display a query box so users can enter a custom value. */ this->clicked_row = num; SetDParam(0, this->ai_config->GetSetting(config_item.name)); ShowQueryString(STR_JUST_INT, STR_CONFIG_SETTING_QUERY_CAPTION, 10, this, CS_NUMERAL, QSF_NONE); } - - this->SetDirty(); break; } diff --git a/src/newgrf_gui.cpp b/src/newgrf_gui.cpp index 7e9e1f693..cc8413408 100644 --- a/src/newgrf_gui.cpp +++ b/src/newgrf_gui.cpp @@ -325,6 +325,7 @@ struct NewGRFParametersWindow : public Window { /* One of the arrows is clicked */ if (IsInsideMM(x, 0, 21)) { uint32 val = par_info->GetValue(this->grf_config); + uint32 old_val = val; if (par_info->type == PTYPE_BOOL) { val = !val; } else { @@ -338,17 +339,18 @@ struct NewGRFParametersWindow : public Window { this->clicked_increase = false; } } - par_info->SetValue(this->grf_config, val); + if (val != old_val) { + par_info->SetValue(this->grf_config, val); - this->clicked_button = num; - this->timeout = 5; + this->clicked_button = num; + this->timeout = 5; + this->SetDirty(); + } } else if (par_info->type == PTYPE_UINT_ENUM && click_count >= 2) { /* Display a query box so users can enter a custom value. */ SetDParam(0, this->grf_config->param[num]); ShowQueryString(STR_JUST_INT, STR_CONFIG_SETTING_QUERY_CAPTION, 10, this, CS_NUMERAL, QSF_NONE); } - - this->SetDirty(); break; } |