summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/town.h1
-rw-r--r--src/town_cmd.cpp2
-rw-r--r--src/town_gui.cpp4
3 files changed, 6 insertions, 1 deletions
diff --git a/src/town.h b/src/town.h
index 7e7bcd29e..9898e3fb6 100644
--- a/src/town.h
+++ b/src/town.h
@@ -161,6 +161,7 @@ enum TownRatingCheckType {
/** Special values for town list window for the data parameter of #InvalidateWindowData. */
enum TownDirectoryInvalidateWindowData {
TDIWD_FORCE_REBUILD,
+ TDIWD_POPULATION_CHANGE,
TDIWD_FORCE_RESORT,
};
diff --git a/src/town_cmd.cpp b/src/town_cmd.cpp
index 994977513..08ab17855 100644
--- a/src/town_cmd.cpp
+++ b/src/town_cmd.cpp
@@ -423,7 +423,7 @@ static void ChangePopulation(Town *t, int mod)
InvalidateWindowData(WC_TOWN_VIEW, t->index); // Cargo requirements may appear/vanish for small populations
if (_settings_client.gui.population_in_label) t->UpdateVirtCoord();
- InvalidateWindowData(WC_TOWN_DIRECTORY, 0, TDIWD_FORCE_RESORT);
+ InvalidateWindowData(WC_TOWN_DIRECTORY, 0, TDIWD_POPULATION_CHANGE);
}
/**
diff --git a/src/town_gui.cpp b/src/town_gui.cpp
index def5f7458..fc781fad0 100644
--- a/src/town_gui.cpp
+++ b/src/town_gui.cpp
@@ -994,6 +994,10 @@ public:
this->towns.ForceRebuild();
break;
+ case TDIWD_POPULATION_CHANGE:
+ if (this->towns.SortType() == 1) this->towns.ForceResort();
+ break;
+
default:
this->towns.ForceResort();
}