diff --git a/src/gfx_layout.h b/src/gfx_layout.h index c8f563591..6a1c62a67 100644 --- a/src/gfx_layout.h +++ b/src/gfx_layout.h @@ -36,8 +36,8 @@ struct FontState { std::stack> colour_stack; ///< Stack of colours to assist with colour switching. - FontState() : fontsize(FS_END), cur_colour(TC_INVALID) {} - FontState(TextColour colour, FontSize fontsize) : fontsize(fontsize), cur_colour(colour) {} + FontState() : fontsize(FS_END), cur_colour(TC_INVALID), fixed_colour(false) {} + FontState(TextColour colour, FontSize fontsize) : fontsize(fontsize), cur_colour(colour), fixed_colour(colour != TC_FROMSTRING) {} /** * Switch to new colour \a c. @@ -46,6 +46,7 @@ struct FontState { inline void SetColour(TextColour c) { assert(c >= TC_BLUE && c <= TC_BLACK); + if (fixed_colour) return; this->cur_colour = c; } @@ -75,6 +76,9 @@ struct FontState { { this->fontsize = f; } + +protected: + bool fixed_colour; }; /** diff --git a/src/industry_gui.cpp b/src/industry_gui.cpp index 536f6da58..ea96ad8a5 100644 --- a/src/industry_gui.cpp +++ b/src/industry_gui.cpp @@ -1392,7 +1392,7 @@ public: break; } for (uint i = this->vscroll->GetPosition(); i < this->industries.size(); i++) { - DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, this->GetIndustryString(this->industries[i])); + DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, this->GetIndustryString(this->industries[i]), TC_GREEN); y += this->resize.step_height; if (++n == this->vscroll->GetCapacity()) break; // max number of industries in 1 window