1
0
mirror of https://github.com/OpenTTD/OpenTTD synced 2025-12-11 15:32:07 +01:00

Fix #14755: Remove clicked type selection when not visible

This commit is contained in:
kos
2025-11-16 02:43:26 +01:00
committed by rubidium42
parent 62e568ce65
commit 98700eee43

View File

@@ -693,6 +693,7 @@ void PickerWindow::BuildPickerTypeList()
if (!this->has_type_picker) return;
this->GetWidget<NWidgetMatrix>(WID_PW_TYPE_MATRIX)->SetCount(static_cast<int>(this->types.size()));
this->EnsureSelectedTypeIsVisible();
}
void PickerWindow::EnsureSelectedTypeIsValid()
@@ -729,9 +730,11 @@ void PickerWindow::EnsureSelectedTypeIsVisible()
int index = this->callbacks.GetSelectedType();
auto it = std::ranges::find_if(this->types, [class_index, index](const auto &item) { return item.class_index == class_index && item.index == index; });
if (it == std::end(this->types)) return;
int pos = -1;
if (it != std::end(this->types)) {
pos = static_cast<int>(std::distance(std::begin(this->types), it));
}
int pos = static_cast<int>(std::distance(std::begin(this->types), it));
this->GetWidget<NWidgetMatrix>(WID_PW_TYPE_MATRIX)->SetClicked(pos);
}