diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/industry_gui.cpp | 14 | ||||
-rw-r--r-- | src/smallmap_gui.cpp | 3 |
2 files changed, 15 insertions, 2 deletions
diff --git a/src/industry_gui.cpp b/src/industry_gui.cpp index 97b7cf983..5f66973a8 100644 --- a/src/industry_gui.cpp +++ b/src/industry_gui.cpp @@ -2281,11 +2281,21 @@ struct IndustryCargoesWindow : public Window { } /** - * Notify the window to display another industry type. - * @param data The new industry type to display. + * Notify the window about external events. + * - data = 0 .. NUM_INDUSTRYTYPES - 1: Display the chain around the given industry. + * - data = NUM_INDUSTRYTYPES: Stop sending updates to the smallmap window. + * @param data The event. */ virtual void OnInvalidateData(int data) { + if (data == NUM_INDUSTRYTYPES) { + if (this->IsWidgetLowered(ICW_NOTIFY)) { + this->RaiseWidget(ICW_NOTIFY); + this->SetWidgetDirty(ICW_NOTIFY); + } + return; + } + assert(data >= 0 && data < NUM_INDUSTRYTYPES); this->ComputeIndustryDisplay(data); } diff --git a/src/smallmap_gui.cpp b/src/smallmap_gui.cpp index e73401c32..b614c3988 100644 --- a/src/smallmap_gui.cpp +++ b/src/smallmap_gui.cpp @@ -1154,6 +1154,9 @@ public: virtual void OnClick(Point pt, int widget, int click_count) { + /* User clicked something, notify the industry chain window to stop sending newly selected industries. */ + InvalidateWindowClassesData(WC_INDUSTRY_CARGOES, NUM_INDUSTRYTYPES); + switch (widget) { case SM_WIDGET_MAP: { // Map window /* |