Fix 98700eee43, Fix #14815: Properly handle picker window invalidation. (#14816)

This commit is contained in:
Cyprian Klimaszewski
2025-11-24 23:28:41 +01:00
committed by dP
parent d7fb936ce8
commit de2a34a1b6

View File

@@ -468,7 +468,7 @@ void PickerWindow::OnDropdownSelect(WidgetID widget, int index, int click_result
}
/* We need to refresh if a filter is removed. */
this->InvalidateData({PickerInvalidation::Type, PickerInvalidation::Filter});
this->InvalidateData({PickerInvalidation::Type, PickerInvalidation::Filter, PickerInvalidation::Position});
break;
}
@@ -479,7 +479,7 @@ void PickerWindow::OnDropdownSelect(WidgetID widget, int index, int click_result
} else {
SetBadgeFilter(this->badge_filter_choices, BadgeID(index));
}
this->InvalidateData({PickerInvalidation::Type, PickerInvalidation::Filter});
this->InvalidateData({PickerInvalidation::Type, PickerInvalidation::Filter, PickerInvalidation::Position});
}
break;
}
@@ -559,7 +559,7 @@ void PickerWindow::OnEditboxChanged(WidgetID wid)
} else {
this->type_string_filter.btf.reset();
}
this->InvalidateData({PickerInvalidation::Type, PickerInvalidation::Filter});
this->InvalidateData({PickerInvalidation::Type, PickerInvalidation::Filter, PickerInvalidation::Position});
break;
default:
@@ -697,7 +697,6 @@ 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()