From bd338d6e426bbeff5bf6c962a8160d0654e7740c Mon Sep 17 00:00:00 2001 From: Peter Nelson Date: Wed, 3 Dec 2025 14:38:20 +0000 Subject: [PATCH] Fix 25f1c97bea: Incorrect background colour in badge configuration list. (#14850) Provide correct widget colour instead of assuming COLOUR_GREY. --- src/build_vehicle_gui.cpp | 2 +- src/newgrf_badge_gui.cpp | 6 +++--- src/newgrf_badge_gui.h | 2 +- src/picker_gui.cpp | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/build_vehicle_gui.cpp b/src/build_vehicle_gui.cpp index 965e969c31..d8912bc89c 100644 --- a/src/build_vehicle_gui.cpp +++ b/src/build_vehicle_gui.cpp @@ -1617,7 +1617,7 @@ struct BuildVehicleWindow : Window { DropDownList BuildBadgeConfigurationList() const { static const auto separators = {STR_BADGE_CONFIG_PREVIEW, STR_BADGE_CONFIG_NAME}; - return BuildBadgeClassConfigurationList(this->badge_classes, BADGE_COLUMNS, separators); + return BuildBadgeClassConfigurationList(this->badge_classes, BADGE_COLUMNS, separators, COLOUR_GREY); } void BuildVehicle() diff --git a/src/newgrf_badge_gui.cpp b/src/newgrf_badge_gui.cpp index 525f751a3a..c2d0dba8f2 100644 --- a/src/newgrf_badge_gui.cpp +++ b/src/newgrf_badge_gui.cpp @@ -330,7 +330,7 @@ enum BadgeClick : int { BADGE_CLICK_TOGGLE_FILTER, }; -DropDownList BuildBadgeClassConfigurationList(const GUIBadgeClasses &gui_classes, uint columns, std::span column_separators) +DropDownList BuildBadgeClassConfigurationList(const GUIBadgeClasses &gui_classes, uint columns, std::span column_separators, Colours bg_colour) { DropDownList list; @@ -349,7 +349,7 @@ DropDownList BuildBadgeClassConfigurationList(const GUIBadgeClasses &gui_classes bool first = (i == 0 && gc.class_index == front); bool last = (i == columns - 1 && gc.class_index == back); - list.push_back(std::make_unique(first ? 0 : BADGE_CLICK_MOVE_UP, last ? 0 : BADGE_CLICK_MOVE_DOWN, COLOUR_YELLOW, gc.visible, BADGE_CLICK_TOGGLE_ICON, COLOUR_YELLOW, COLOUR_GREY, GetString(GetClassBadge(gc.class_index)->name), gc.class_index.base())); + list.push_back(std::make_unique(first ? 0 : BADGE_CLICK_MOVE_UP, last ? 0 : BADGE_CLICK_MOVE_DOWN, COLOUR_YELLOW, gc.visible, BADGE_CLICK_TOGGLE_ICON, COLOUR_YELLOW, bg_colour, GetString(GetClassBadge(gc.class_index)->name), gc.class_index.base())); } if (i >= column_separators.size()) continue; @@ -369,7 +369,7 @@ DropDownList BuildBadgeClassConfigurationList(const GUIBadgeClasses &gui_classes if (!badge->flags.Test(BadgeFlag::HasText)) continue; const auto [config, _] = GetBadgeClassConfigItem(gui_classes.GetFeature(), badge->label); - list.push_back(std::make_unique(config.show_filter, BADGE_CLICK_TOGGLE_FILTER, COLOUR_YELLOW, COLOUR_GREY, GetString(badge->name), (1U << 16) | badge_class_index.base())); + list.push_back(std::make_unique(config.show_filter, BADGE_CLICK_TOGGLE_FILTER, COLOUR_YELLOW, bg_colour, GetString(badge->name), (1U << 16) | badge_class_index.base())); } return list; diff --git a/src/newgrf_badge_gui.h b/src/newgrf_badge_gui.h index af2ed4cafc..868cdf86d6 100644 --- a/src/newgrf_badge_gui.h +++ b/src/newgrf_badge_gui.h @@ -54,7 +54,7 @@ std::unique_ptr MakeDropDownListBadgeItem(const std::shared_pt std::unique_ptr MakeDropDownListBadgeItem(const std::shared_ptr &gui_classes, std::span badges, GrfSpecFeature feature, std::optional introduction_date, Money cost, std::string &&str, int value, bool masked = false, bool shaded = false); std::unique_ptr MakeDropDownListBadgeIconItem(const std::shared_ptr &gui_classes, std::span badges, GrfSpecFeature feature, std::optional introduction_date, Money cost, const Dimension &dim, SpriteID sprite, PaletteID palette, std::string &&str, int value, bool masked = false, bool shaded = false); -DropDownList BuildBadgeClassConfigurationList(const class GUIBadgeClasses &badge_class, uint columns, std::span column_separators); +DropDownList BuildBadgeClassConfigurationList(const class GUIBadgeClasses &badge_class, uint columns, std::span column_separators, Colours bg_colour); bool HandleBadgeConfigurationDropDownClick(GrfSpecFeature feature, uint columns, int result, int click_result, BadgeFilterChoices &choices); std::pair AddBadgeDropdownFilters(NWidgetContainer &container, WidgetID widget, Colours colour, GrfSpecFeature feature); diff --git a/src/picker_gui.cpp b/src/picker_gui.cpp index d73b2a5dd1..a594b7c37b 100644 --- a/src/picker_gui.cpp +++ b/src/picker_gui.cpp @@ -444,7 +444,7 @@ void PickerWindow::OnClick(Point pt, WidgetID widget, int) case WID_PW_CONFIGURE_BADGES: if (this->badge_classes.GetClasses().empty()) break; - ShowDropDownList(this, BuildBadgeClassConfigurationList(this->badge_classes, 1, {}), -1, widget, 0, DropDownOption::Persist); + ShowDropDownList(this, BuildBadgeClassConfigurationList(this->badge_classes, 1, {}, COLOUR_DARK_GREEN), -1, widget, 0, DropDownOption::Persist); break; default: @@ -466,7 +466,7 @@ void PickerWindow::OnDropdownSelect(WidgetID widget, int index, int click_result this->ReInit(); if (reopen) { - ReplaceDropDownList(this, BuildBadgeClassConfigurationList(this->badge_classes, 1, {}), -1); + ReplaceDropDownList(this, BuildBadgeClassConfigurationList(this->badge_classes, 1, {}, COLOUR_DARK_GREEN), -1); } else { this->CloseChildWindows(WC_DROPDOWN_MENU); }